跟随在 ALTER TABLE 关键字之后的表名或同义词的表必须是当前数据库中的常驻表。它具有以下限制:
- 不能是临时表。
- 不能是不是当前数据库中的表。
- 不能是 CREATE EXTERNAL TABLE 语句定义的表对象。
- 不能是违例表或诊断表。
此外,您不能用 ALTER TABLE 语句进行以下操作:
- 添加、删除或修改与违规表或诊断表关联的表中列。
- 在 RAW 表上定义引用约束或唯一约束。
- 在列或列的集合上定义 将列作为索引键的限制 冲突的索引。
如果已设置了 USETABLENAME 环境变量,那么您就不能在 ALTER TABLE 语句中指定表的
synonym 。
要使用 ALTER TABLE ,您的存取权限必须至少满足以下条件之一:
- 必须在包含该表的数据库上拥有 DBA 权限。
- 必须拥有该表。
- 必须拥有指定表上的 Alter 权限并在表驻留的数据库上拥有 Resource 权限。
- 要添加引用约束,必须在引用列或引用表上拥有 DBA 权限或 References 权限。
- 要删除约束,必须拥有 DBA 权限或是约束的所有者。如果是约束的所有者但不是表的所有者,必须在指定的表上拥有 Alter 权限。您不需要 References
权限就能删除约束。