使用 ALTER TABLE 语句中的约束定义部分来声明约束的名称并将约束方式设置为 DISABLED 或 ENABLED ,或者对于包含隔离表的表,设置为两个 FILTERING 方式。
对于启用或过滤 ALTER TABLE ADD CONSTRAINT 语句可以创建的外键约束,NOVALIDATE 方式可以在数据库服务器在创建此约束时,防止其检查该表的每一行是否符合启用约束。
单列约束格式和多列约束格式都支持以下定义约束的语法:
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
constraint | 在此为约束声明的名称 | 在数据库中的索引和约束名称中必须唯一 | 标识符 |
如果此 ALTER TABLE 语句包含单个列约束格式或多列约束格式,但是约束定义为空,则数据库服务器创建并启用指定任意类型的单列约束格式或多列约束格式,给此约束分配一个系统生成的标识符和一个缺省对象状态,并将这些属性注册到 sysconstraints 和 sysobjstate 系统目录表中。
如果您未为此约束指定方式,那么约束使用缺省的方式。
可选的 ON DELETE CASCADE 关键字可以在该约束名称之前或之后。对于引用约束,ON DELETE CASCADE 关键字指示数据库服务器在删除父表中具有关联的主键的行时,删除子表中具有外键的行。有关 DELETE 操作上这些关键字的影响的更多信息,请参阅使用 ON DELETE CASCADE 选项 。
当创建 ALTER TABLE ADD CONSTRAINT 语句定义的外键约束时,NOVALIDATE 关键字防止数据库服务器在运行 ALTER TABLE 语句时检查该表的每一行是否符合启用约束。有关此关键字的限制和影响的更多信息,请参阅在 NOVALIDATE 方式下创建外键约束。
在 CREATE TABLE 语句中,您不能在 BYTE 或 TEXT 列上定义唯一约束、主键约束或引用约束。此外,该表不能是 RAW 表。
有关约束方式选项的更多信息,请参阅选择约束方式选项。