Oracle:外键关联导致数据无法删除
来源:互联网 发布:qq群做淘宝客如何赚钱 编辑:程序博客网 时间:2024/06/02 06:05
手动删除数据库中冗余数据可能遇到外键关联导致数据无法删除的问题。这个问题的解决及思考记录如下:
问题的产生是因为在数据库设计的时候,在建立外键关联的时候没有设置级联删除,也就是说在设置外键的时候并没有加上on delete cascade限定。对于这个问题,我的想法是:在数据库设计的时候一般情况下都是应该加上这样的限制的。如果说担心“级联删除”可能会误删有用的数据,这种情况如果真的发生的话,那么就应该在数据库的设计上找原因了。
如果在数据库设计的时候设置了级联删除,那么本文提到的问题是不会发生的。如果不幸这样的状况发生了,那么可以根据它提示的关联外键,到user_constraints表中按constraint_name查找到唯一的记录,当然查询这个系统视图的用户权限应该比较高,然后在记录中找到table_name,最后编辑表的外键关联,将on delete触发的动作改为cascade。如果数据库中数据库表很多,关联关系比较复杂,那么很可能在遇到问题之后要修改的外键关联时的级联删除不止一个两个。
此外,说两个题外话:
第一,设置外键关联的时候,级联操作有三种设置方式:
默认无动作:on delete no action;
置空:on delete set null;
级联删除:on delete cascade。
第二,在drop表的时候,用drop table cascade constraints语句,只会删除子表与父表之间的关联关系,不会删除子表中关联父表的那些记录。
- Oracle:外键关联导致数据无法删除
- Oracle:外键关联导致数据无法删除
- oracle外键关联而无法删除数据
- oracle外键关联而无法删除数据
- oracle外键关联而无法删除数据
- 外键关联而无法删除数据
- 外键关联而无法删除数据
- 外键关联而无法删除数据
- 删除数据文件导致oracle系统无法启动
- SQL删除数据因外键关联导致花费时间太长----(外键列上增加索引解决此问题)
- ORA-02292 外键关联,无法删除记录
- MySQL因为外键关联无法删除数据解决方法以及修改数据库全部表中某种外键的值
- oracle 多表删除 同时删除多表中关联数据
- oracle 多表删除 同时删除多表中关联数据
- oracle 多表删除 同时删除多表中关联数据
- oracle数据文件强制删除导致无法启动的解决办法
- 由于外键约束无法删除数据
- 外键关联的表怎么删除数据
- log4cplus的一些问题
- No enclosing instance of type SearchCommand is available due to some intermediate constructor invoca
- java web strusts2 配置中的问题
- 特征选择常用算法综述
- Codeforces CROC problem C
- Oracle:外键关联导致数据无法删除
- 利用NFS服务挂载NFS根文件系统
- Android通过JNI调用驱动程序(完全解析实例)
- 使用Gnu gprof进行Linux平台下的程序分析
- 约瑟夫问题
- 贪心之hdu1045
- WCF足迹10:异常2
- Python3中bytes和HexStr之间的转换
- 基于LGPL开源项目 Log4cpp安装与使用