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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 确保数据完整性 » 使用表和列约束

 

从域继承列 CHECK 约束

您可以在域中附加 CHECK 约束。使用这些域定义的列将继承 CHECK 约束。为列显式指定的 CHECK 约束将替换域中的 CHECK 约束。例如,此域定义中的 CHECK 子句要求插入到列中的值只能为正整数。

CREATE DATATYPE positive_integer INT
CHECK ( @col > 0 );

任何使用 positive_integer 域定义的列都只接受正整数,除非为列本身显式指定了 CHECK 约束。由于任何前缀为 @ 符号的变量都会在评估 CHECK 约束时被列名替换,因此,可以使用任何前缀为 @ 的变量名称来代替 @col。

带有 DELETE CHECK 子句的 ALTER TABLE 语句将从表定义中删除所有 CHECK 约束,包括从域继承的那些 CHECK 约束。

在域上定义列后,对此域定义中的约束所做的任何更改都不会应用到该列。创建列时,它会从该域获取约束,但之后两者之间就不再有关联。

 另请参见