【问题标题】: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';
    

    将该选择的输出保存到一个文件中,您就有了从该表中删除所有外键的语句。

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 2019-03-13
      • 2011-11-09
      • 2011-02-16
      • 2019-04-26
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多