多列约束格式

使用此选项将一个或多个约束指定到现有表中的一个列或一组列。
它与 CREATE TABLE 语句的多列约束格式极其类似,但是可选的 INDEX DISABLED 关键字在
CREATE TABLE 语句定义的外键约束中无效(返回错误)。
在 CREATE TABLE 语句中,ALTER TABLE 的多列约束格式与单列约束格式不同之处在于,当
您指定外键约束时,在 REFERENCES 子句之前需要 FOREIGN KEY 关键字。此外,如它的名称
所指,多列约束格式可指定列列表作为新约束的范围,此语法同样对单列有效。
有关 INDEX DISABLED 关键字选项的更多信息,请参阅 在外键的定义中使用 INDEX
DISABLED 关键字 。
多列约束具有以下基数和大小限制:
⚫ 可包含的列名不多于 16 个。
⚫ 最该列列表的总长度的最大值依赖于页大小,计算公式为:
MAXLength = (((PageSize - 93)/5) -1)
o 对于 2K 的页大小,总长度不能超过 390 字节。
o 对于 16K 的页大小,总长度不能超过 3257 字节。
此处的反斜杠( / )符号代表整除。
如果您在同一列上定义了 NOT NULL 约束和 NULL 约束或在缺省值为 NULL 的列上定义了
NOT NULL 约束,则该语句失败并返回错误。
您不能在 LIST 、MULTISET 、SET 或 IDSSECURITYLABEL 数据类型的列上定义 NULL 约
束。
如果一组列中有一列存储了加密数据,则 GBase 8s 无法强制执行此组列的约束。您可以发布此约
束的名称并将用 约束定义 设置它的方式。
如果 ALTER TABLE ADD CONSTRAINT 语句在同一表中了定义多个引用约束,则每个约束需要
它自己所有的 REFERENCES 子句,因此每个单独的约束可指定(或忽略)类似 ON DELETE
CASCADE 的选项,而不是将其应用至所有的约束。
如果数据库服务器在同一非 opaque 列或列组上隐式地创建了索引作为引用约束,则会自动计算指
定列的分别存储统计或多列约束的主列。
这些分布存储统计相当于 STATISTICS 语句在 HIGH 方式中创建的分布,且当其作为创建了新约
束的表查询计划时,可用于查询优化器。有关在现有表上创建索引或约束时计算分布存储的其它信
息,请参阅 CREATE INDEX 语句中自动计算分布统计信息章节中的描述。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值