删除没有名字的外键Oracle
问题描述:
我想在这里提出一个非常基本的问题。 我们在创建表格或创建表格后可能/不可以命名约束。 假设我选择不命名外键约束。删除没有名字的外键Oracle
该表没有记录。
我可以在不命名的情况下删除外键名称吗?
我知道如何让外键的名称,然后使用它像
alter table my_table drop constraint fk_name;
删除,但我想删除/删除外键约束就不能不提它的名字。
有没有办法做到这一点?
答
但我想删除/删除外键约束而不提及它的名称。
这是不可能的。删除外键约束需要一个名称。然而,你可以找出系统生成的名称:
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';
保存的是选择到一个文件的输出,你必须使用statement(s),以从该表中删除所有外键。