CREATE DOMAIN domain_name
[ AS ] data_type
[ DEFAULT expression ]
[ CONSTRAINT constraint_name ]
[ [ NOT ] NULL ]
[ CHECK (expression) ];
其中:
- domain_name: 新数据类型(Domain)的名称。
- data_type: 基础数据类型,作为该 Domain 的基础。
- DEFAULT: 定义默认值表达式。
- CONSTRAINT: 为 Domain 定义约束的名称。
- NULL: 指定是否允许 NULL 值。
- CHECK: 定义检查约束,该约束使用指定的表达式来验证 Domain 中的值。
以下是一个例子,创建一个名为 "email_address" 的 Domain,基于 TEXT 数据类型,要求存储的值必须符合电子邮件地址的基本格式:
CREATE DOMAIN email_address
AS TEXT
CHECK (VALUE ~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$');
在上述示例中,email_address 是 Domain 的名称,基础数据类型为 TEXT,CHECK 约束确保存储的值符合电子邮件地址的正则表达式。
请注意,创建 Domain 的权限通常需要数据库管理员权限。
转载请注明出处:http://www.zyzy.cn/article/detail/8656/PostgreSQL