此语句用于在数据库中创建域。
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; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |