使用 DROP Column 子句移除表结构中的一列或多列。
您不能发出可删除表中每一列的 ALTER TABLE DROP 语句。至少一列必须保留于表中。
您不能删除是分片存储策略的分片键一部分的列。
由安全标签保护的列可以通过使用 ALTER TABLE DROP 语句删除,但是该用户必须是
DBSECADM 且还必须持有修改该表的结构的一般 CONNECT 、RESOURCE 和 ALTER 存取权
限。
删除一列如何影响约束
当您删除列时,该列上的所有约束也被删除:
⚫ 所有单列约束被删除。
⚫ 所有引用该列的引用约束被删除。
⚫ 所有引用该列的检查约束被删除。
⚫ 如果列是多列主键约束或唯一约束的一部分,则多列上放置的约束也被删除。此操作接下
来触发引用多列的所有引用约束的删除。
由于当删除列时任何与列相关联的约束被删除,因此当使用此子句时其它表的结构也可能改变。例
如,如果被删除的列是在其它表中被引用的唯一键或者主键,则那些引用约束也被删除。因此那些
其它表的结构也发生改变。
删除一列如何影响触发器
通常,从表中删除列时,基于该表的触发器不变。然而如果您删除的列出现在触发器操作子句中,
删除该列可使得触发器无效。以下语句说明了可能对触发器的影响:
CREATE TABLE tab1 (i1 int, i2 int, i3 int);
CREATE TABLE tab2 (i4 int, i5 int);
CREATE TRIGGER col1trig UPDATE OF i2 ON tab1
BEFORE(INSERT INTO tab2 VALUES(1,1));
ALTER TABLE tab2 DROP i4;
ALTER TABLE 语句之
DROP Column 子句
最新推荐文章于 2024-08-13 15:51:00 发布
本文介绍了如何使用 DROP Column 子句从表结构中删除列,强调了删除列时的限制,如不能删除分片键列,并讨论了删除列对约束、触发器和视图的影响,包括约束的自动删除、触发器可能失效以及视图不受自动更新的情况。
摘要由CSDN通过智能技术生成