ORA-08118: Deferred FK constraints cannot be enforced, index too big (string)
Cause: Deferred Foreign Key constraints cannot be enforced due to the index key being too big and built on a non-default DB_BLOCK_SIZE.
Action: First try to drop the Foreign Key and then the primary key.
这是Oracle系统抛出的一个常见错误,指示数据库无法维护一个外键约束因为它的索引太大。此错误出现在外键定义为不可延迟(Deferred)的时候,而数据库在处理foreign key的时候,会把它们默认为deferred即可延迟风格,这样引起就会引发该错误消息。
1. 查询此索引的大小
2. 更改单个表中每个索引的最大大小
3. 使用ALTER TABLE的ENABLE NOVALIDATE参数来重建索引
4. 将外键连接设置为一致,以确保可以强制执行其约束
5. 使用VALIDATE参数重新启用约束