内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-02293常见约束
无法验证 - 违反检查约束
Cannot validate - check constraint violated
错误描述
启用检查约束失败,因为现有数据违反了约束条件。
可能原因
- 现有行包含不满足 CHECK 条件的值
- 在约束被禁用时加载了数据
解决方案
- 1在启用约束之前查找违反的行并修复
- 2使用 ENABLE NOVALIDATE 跳过现有数据的验证
- 3删除或更新违反约束的行
诊断命令
SELECT * FROM <table> WHERE NOT (<check_condition>);SELECT constraint_name, search_condition FROM dba_constraints WHERE table_name = '<TABLE>' AND constraint_type = 'C';#constraint#check#validate