oracle 外键 删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 外键 删除相关的知识,希望对你有一定的参考价值。

我要实现以下两个表功能
表一
表头: A B C
内容: 001 甲 乙
002 丙 丁
表二
表头 A D
内容 001 删
001 除
001 我
002 行
002 不
当执行删除表一的A=001时,表2的A=001的内容都会被删除
这个功能能实现不?
在表一中A列是PK

我不是想删除外键约束,我是想删除表2的内容
如执行delete from 表1 where A='001';
不需要我们执行delete from 表2 where A='001';
表二里面的内容,也一样被删除了。

select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R';

祝贺楼主成功。
1楼说的怎么可能?只要删除外键约束了,然后你就可以删除这个表的数据,不会影响到引用外键的表。
参考技术A 删除外键的语法和建立约束的语法差不多

建立的时候不是alter table 表名 add constraint 约束名么?

删除的时候就是

alter table 表名 drop constraint 外键名;

这样就OK了。

Oracle删除表时候有外键 不能删除

技术图片

 

SELECT
    A .constraint_name,
    A .table_name,
    b.constraint_name
FROM
    user_constraints A,
    user_constraints b
WHERE
    A .constraint_type = ‘R‘
AND b.constraint_type = ‘P‘
AND A .r_constraint_name = b.constraint_name
AND A .constraint_name = UPPER (
    ‘ACT_FK_VAR_PROCINST‘
)

找到对应表 直接删除

以上是关于oracle 外键 删除的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE语句怎么删除外键约束,只是删约束,不是删表

oracle数据库设置外键问题

oracle 删除外键约束 禁用约束 启用约束

oracle为表建立外键时没有命名FOREIGN KEY约束,现在想删外键怎么办??

oracle怎么查看外键在哪个表

小议Oracle外键约束修改行为(一)