给已有数据的oracle表建立外键关系详解数据库
2023-06-13 09:20:14 时间
添加两张已存在数据的表的关系外键时,报如下图所示的错误:
出现这种错误,无非是两张表的关联字段的名称、类型、长度等不一致,又或者表中已存在的数据不匹配造成的。
我们可以通过minus关键字查询2张表的差值,确实存在!!!
解决方法有两种:
(1).删除多余的数据,保持2张表数据统一,在执行 alter table 表1 add constraint FK_XXX foreign key(字段1) references 表2 (字段2);就不会报错了;
(ps:这种方式在实际生产过程中不实际,生产环境数据不能随便删除的,所以这种方式不现实,不推荐)
(2).在alter语句之后加上enable novalidate即可,即alter table 表1 add constraint FK_XXX foreign key(字段1) references 表2 (字段2) enable novalidate;
(ps:enable novalidate指的是允许已有记录不满足约束条件,但新增/修改的记录则必须满足约束条件)
这是其他3种修饰关键词的含义:
Enable Validate与Enable相同,检查已有记录和新增记录,确保都符合约束;
Disable Validate禁用约束,删除约束上的索引,不允许修改任何被约束的记录;
Disable Novalidate与Disable相同,禁用约束,删除约束上的索引,且允许修改被约束的记录。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/5744.html
相关文章
- 导出Oracle数据:简单快捷一键查询(oracle导出查询数据)
- 使用Oracle导入工具快速数据迁移(oracle导入工具)
- 探究Oracle数据库的数据类型(oracle数据类型有哪些)
- 处理Oracle如何快速处理列重复数据(oracle列重复数据)
- 掌握Oracle数据库大小:超简单查询方法(oracle查询库大小)
- 服务如何在Oracle中停止数据库服务(oracle停止数据库)
- 数据如何使用Oracle删除数据(oracle怎么删除)
- Oracle索引的分区技术优势(oracle索引分区)
- 利用Oracle数据库实现日期比较(oracle中日期比较)
- 构建Oracle数据库触发器入门(oracle创建触发器)
- Oracle ED:简约高效的数据库管理工具(oracleed)
- 探索Oracle数据库的标志性图标设计(oracle数据库的图标)
- 探索Oracle连接的多种作用(oracle连接的作用)
- Oracle自动排序:实现自动排序功能(oracle自动排序)
- Oracle监听连接的作用及配置方法(oracle监听连接)
- 动取消让Oracle自动启动确保系统安全(oracle关闭自启)
- 通往Oracle二级认证之路(oracle二级考试)
- Oracle数据库开发优质图书精选(oracle优质图书)
- Oracle中的数据介质管理构建可靠的数据储存环境(oracle中的介质是)
- Oracle 数据库中文字段排序解决方法(oracle中文字段排序)
- 用时Oracle数据库中操作的平均用时统计分析(oracle中平均)
- 数据库Oracle数据库配置指南(oracle中如何设置)
- 据灵活利用Oracle 工具获取精准的计算机数据(oracle中取算机数)
- Oracle的混合数据双重视角的转换(oracle两部分数据)
- 函数Oracle 使用日期函数两年后的故事(oracle两年后日期)
- 调查Oracle数据库下表的数量(oracle下表个数据库)
- Oracle 25228新一代数据库技术革新(oracle 25228)