ADD CONSTRAINT 子句

使用 ADD CONSTRAINT 子句指定新列或现有列或列组上的主键约束、外键约束、引用约束、唯
一约束或检查约束。
例如,要将唯一约束添加至 customer 表的 fname 和 lname 列,请使用以下语句:
ALTER TABLE customer ADD CONSTRAINT UNIQUE (lname, fname);
要声明约束的名称,请更改上述语句(给该约束添加 CONSTRAINT 关键字和标识符):
ALTER TABLE customer
ADD CONSTRAINT UNIQUE (lname, fname) CONSTRAINT u_cust;
在同一表上定义的约束的标识符的名称必须唯一。如果没有定义此约束的名称,则数据库服务器会
为其指定系统定义的标识符,并将此名称存储至系统目录表的 sysconstraints.constrid 列。
缺省情况下,新约束是启用的。要添加未启用的约束,您可以在该约束的名称之后包含
DISABLED 关键字:
ALTER TABLE customer
ADD CONSTRAINT UNIQUE (lname, fname) CONSTRAINT u_cust DISABLED;
在您希望强制执行此约束 的 DML 操作之前,可以使用 SET Database Object Mode 语句启用该禁
用的约束。
当您未指定新约束的名称时,则数据库服务器会提供一个名称。您可以在 sysconstraints 系统目录
表中找到约束的名称。有关 sysconstraints 系统目录表的更多信息,请参阅 《GBase 8s SQL 指
南:参考》 。
由 ALTER TABLE 定义约束的限制
以下有关 ADD CONSTRAINT 子句(和 MODIFY 子句)的限制会影响 ALTER TABLE 语句定
义的约束:
⚫ 当您添加约束时,它的排列顺序必须与创建表时顺序一致。
⚫ ADD CONSTRAINT 子句不能在任何数据类型的列上定义 NULL 或 NOT NULL 约束。
只有 MODIFY 子句才能在现有表的列上定义 NULL 或 NOT NULL 约束。
⚫ 您不能在 RAW 表上定义主键约束、外键约束或唯一约束。然而您可以使用 ALTER
TABLE 语句的 MODIFY 子句在 RAW 表上的列中定义 NOT NULL 约束或 NULL 约束
(但是不能都定义)。有关在现有表的列上添加 NULL 或 NOT NULL 约束的语法,请参
阅 MODIFY 子句。
⚫ 您不能在 BYTE 或 TEXTY 列上放置唯一约束或引用约束。
⚫ BYTE 或 TEXTA 列的检查约束只检查 IS NULL 、IS NOT NULL 或 LENGTH 。 • 缺省情况下,每个 IDSSECURITYLABEL 列具有隐式 NOT NULL 约束。然而您不能使用
ADD CONSTRAINT 子句引用在单列约束的定义中的 IDSSECURITYLABEL 列,也不能
引用作为多列引用约束或检查约束的一部分的 IDSSECURITYLABEL 列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值