【问题标题】:drop foreign key without name Oracle删除没有名字 Oracle 的外键
【发布时间】:2014-12-23 01:48:46
【问题描述】:
我想在这里问一个非常基本的问题。
在创建表时或创建表之后,我们可能/可能不会命名约束。
假设我选择不命名外键约束。
该表没有记录。
我可以不命名就删除外键名吗?
我知道如何获取外键的名称,然后像使用它一样删除
alter table my_table drop constraint fk_name;
但我想删除/删除外键约束而不提及其名称。
还有办法吗?
【问题讨论】:
标签:
oracle
constraints
alter
【解决方案1】:
但我想删除/删除外键约束而不提及其名称。
这是不可能的。删除外键约束需要一个名称。但是您可以找出系统生成的名称:
select constraint_name
from user_constraints
where table_name = 'MY_TABLE'
and constraint_type = 'R';
将显示在表MY_TABLE 上定义的所有外键。使用该语句,您甚至可以生成必要的 DDL 语句:
select 'alter table "'||table_name||'" drop constraint "'||constraint_name||'";'
from user_constraints
where table_name = 'MY_TABLE'
and constraint_type = 'R';
将该选择的输出保存到一个文件中,您就有了从该表中删除所有外键的语句。