在 PostgreSQL 中,CREATE DOMAIN 语句用于创建用户定义的数据类型(Domain)。Domain 是建立在现有数据类型之上的一种抽象,允许你为数据定义额外的约束或语义信息。以下是 CREATE DOMAIN 语句的基本语法:
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