ORA-30667错误:无法删除DEFAULT ON NULL列的NOT NULL约束求助
解决ORA-30667错误:无法删除DEFAULT ON NULL列的NOT NULL约束
根据错误提示的Action说明,必须先移除列的DEFAULT ON NULL属性,才能执行删除NOT NULL约束、列或表的操作。具体步骤如下:
移除TABLE_ID列的DEFAULT ON NULL属性
执行SQL命令将列的默认值设置为NULL,以此清除ON NULL特性:ALTER TABLE A MODIFY TABLE_ID DEFAULT NULL;查询TABLE_ID列的NOT NULL约束名
系统会自动为NOT NULL约束生成名称,执行以下语句获取该约束名:SELECT constraint_name FROM user_cons_columns WHERE table_name = 'A' AND column_name = 'TABLE_ID' AND constraint_type = 'C';删除NOT NULL约束
将查询得到的约束名替换到下方命令中执行:ALTER TABLE A DROP CONSTRAINT <约束名>;执行目标操作
- 删除TABLE_ID列:
ALTER TABLE A DROP COLUMN TABLE_ID; - 删除表A:
DROP TABLE A;
- 删除TABLE_ID列:
内容的提问来源于stack exchange,提问作者SandeepChander
相关产品推荐
相关产品推荐

