第二章 SQL命令 ALTER TABLE(二)
删除列限制
DROP COLUMN可以删除指定为逗号分隔列表的多个列定义。每个列出的列名后面必须紧跟其RESTORY或CASCADE(如果未指定,则默认为)和或(如果未指定,则默认为)选项。
默认情况下,删除列定义不会从数据映射中删除存储在该列中的任何数据。 要同时删除列定义和数据,请指定选项。
删除列定义并不删除相应的列级特权。 例如,授予用户在该列上插入、更新或删除数据的权限。 这将产生以下后果:
- 如果删除了一个列,然后添加了另一个同名的列,那么用户和角色将在新列上拥有与旧列相同的特权。
- 删除列后,不可能撤销该列的对象特权。
由于这些原因,通常建议在删除列定义之前使用REVOKE命令从列中撤销列级特权。
关键字(或无关键字):如果列出现在索引中,或者定义在外键约束或其他唯一约束中,则不能删除该列。
为该列尝试失败,并出现SQLCODE -322错误。
默认为。
关键字:如果该列出现在索引中,该索引将被删除。 可能有多个索引。 如果列出现在外键中,则将删除外键。 可能有多个外键。
如果列在或子句中使用,则不能删除该列。
尝试这样做会导致SQLCODE -400错误。
添加约束限制
可以向以逗号分隔的字段列表添加约束。 例如,可以添加约束,它在两个字段和的组合值上建立一个UNIQUE约束。
.png)


