Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

CREATE DOMAIN 语句

此语句用于在数据库中创建域。

语法
CREATE { DOMAIN | DATATYPE } [ AS ] domain-name data-type
[ [ NOT ] NULL ]
[ DEFAULT default-value ]
[ CHECK ( condition ) ]
domain-name : identifier
data-type :  built-in data type, with precision and scale
参数
  • DOMAIN | DATATYPE 子句   建议使用 CREATE DOMAIN 而不是 CREATE DATATYPE,因为 CREATE DOMAIN 是 ANSI/ISO SQL3 术语。

  • NULL 子句   此子句可用于指定域的为空性。当使用域定义列时,将按如下方式确定为空性:

    • 在列定义中指定为空性

    • 在域定义中指定为空性

    • 如果未在列定义或域定义中显式指定为空性,则使用 allow_nulls_by_default 选项的设置。

  • CHECK 子句   创建 CHECK 条件时,可以在条件中使用一个以 @ 符号为前缀的变量名。如果使用该数据类型定义列,这样的变量将被列名称替换。这样,CHECK 条件便可在数据类型上定义并由任何名称的列使用。

注释

域是内置数据类型的别名,在适用的时候还会包括精度值和小数位数值。它们提高了方便性并促进了数据库的一致性。

域是数据库中的对象。其名称必须遵守标识符规则。与内置数据类型名一样,域名始终不区分大小写。

创建数据类型的用户会自动成为此数据类型的所有者。在 CREATE DATATYPE 语句中不能指定所有者。域名必须唯一,且所有用户都可以访问此数据类型,而不必使用所有者作为前缀。

域可以有 CHECK 条件和 DEFAULT 值,您可以指示数据类型是否允许使用 NULL 值。在数据类型上创建的任何列都将继承这些条件和值。在列上显式指定的任何条件或值会替换为数据类型指定的条件或值。

要从数据库中删除数据类型,请使用 DROP 语句。您必须是数据类型的所有者或者具有 DBA 权限才能删除域。

权限

必须具有 RESOURCE 权限。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   核心 SQL 之外的 SQL/基础特性。

示例

以下语句创建名为 address 的数据类型,它包含长度为 35 个字符的字符串并且可以为 NULL。

CREATE DOMAIN address CHAR( 35 ) NULL;

以下语句创建名为 ID 的数据类型,它不允许使用 NULL,且在缺省情况下自动递增。

CREATE DOMAIN ID INT
NOT NULL
DEFAULT AUTOINCREMENT;