Oracle SQL - 尽管检查约束

时间:2018-04-02 22:05:18

标签: oracle activerecord oracle11g

我正在将我的架构中的所有表迁移为分区表。因为我是11g而不是12.2我必须使用DBMS_REDEFINITION。我已经使用一些Ruby代码对其进行了自动化,这些代码为我的架构中的每个表执行重新定义过程。

我的问题是迁移后,我的所有不可为空的列都显示NULLABLE - 是。但事实并非如此,因为我可以检查约束,并且为以前为NOT NULL的每个列定义了检查约束,仍然强制执行NOT NULL状态。似乎DBMS_REDEFINITION成功复制了约束,但它没有反映NULLABLE状态。

有没有办法告诉Oracle让它恢复同步?

1 个答案:

答案 0 :(得分:0)

我在其他地方找到了答案:

https://dba.stackexchange.com/questions/55081/why-is-sqlplus-desc-table-not-showing-not-null-constraints-after-using-dbms-re

Oracle复制约束但永远不会重新启用验证。您必须手动执行以下操作:

ALTER TABLE <table_name> ENABLE VALIDATE CONSTRAINT <constraint_name>;