此语句用于在数据库中创建域。
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 缺省情况下,域允许 NULL,除非 allow_nulls_by_default 选项设置为 OFF。这个时候,缺省情况下新域不允许 NULL。在域中创建的列可否为空取决于该域的定义设置,而不是引用该列时的 allow_nulls_by_default 选项设置。任何在列定义中显式设置的 NULL 或 NOT NULL 都取代域设置。
CHECK 子句 创建 CHECK 条件时,可以在条件中使用一个带 @ 符号前缀的变量名。如果使用该数据类型定义列,这样的变量将被列名称替换。这使 CHECK 条件可以在数据类型上定义并由任何名称的列使用。
域是内部数据类型的别名,对有些数据类型,包括精度值和小数位数。它们提高了方便程度并有利于数据库的一致性。
域是数据库中的对象。其名称必须遵守标识符规则。与内部数据类型的名称一样,域名称始终不区分大小写。
创建数据类型的用户自动成为该数据类型的所有者。在 CREATE DATATYPE 语句中不能指定所有者。域名称必须是唯一的,所有用户都可以访问这个数据类型且不必将所有者作为前缀。
域可以有 CHECK 条件和 DEFAULT 值,您可以指示数据类型是否允许 NULL 值。在数据类型上创建的任何列都将继承这些条件和值。在列上显式指定的任何条件或值都取代为数据类型指定的条件或值。
要从数据库中删除数据类型,请使用 DROP 语句。必须是数据类型的所有者或者具有 DBA 权限才能删除域。
必须有 RESOURCE 权限。
自动提交。
SQL/92 中间级特性。
SQL/99 核心 SQL 外部的 SQL/基础特性。
Sybase 不受 Adaptive Server Enterprise 支持。Transact-SQL 使用 sp_addtype 系统过程以及 CREATE DEFAULT 和 CREATE RULE 语句提供类似的功能。
下面的语句创建名为 address 的数据类型,它包含 35 个字符长的字符串并且可以为 NULL。
CREATE DOMAIN address CHAR( 35 ) NULL
下面的语句创建名为 id 的数据类型,它不允许 NULL 并且在缺省情况下自动递增。
CREATE DOMAIN id INT NOT NULL DEFAULT AUTOINCREMENT
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。