【问题标题】:To remove foreign key constraint from tables which are refrenced by given table in postgreSQL从 postgreSQL 中给定表引用的表中删除外键约束
【发布时间】:2014-11-30 16:21:05
【问题描述】:

我是 PostgreSQL 新手。我正在努力解决一个问题。问题是我想从给定 table 引用的表中删除外键约束。以下查询给了我约束列表。

  SELECT
    tc.ct_name, tc.table_name AS fg_tb_name, kcu.column_name AS fg_cn_name, 
    ccu.table_name AS tb_name,
    ccu.column_name AS cn_name,
FROM 
    information_schema.table_constraints AS tc 
    JOIN information_schema.key_column_usage AS kcu
      ON tc.constraint_name = kcu.constraint_name
    JOIN information_schema.constraint_column_usage AS ccu
      ON ccu.constraint_name = tc.constraint_name
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='dimension' AND ccu.table_schema='public';

它为我提供了由“维度”表引用的表列表和外键名称。

查询结果如下:-

ct_name         |   fg_tb_name       | fg_cn_name          | tb_name    | cn_name    | 
--------------------------------------------------------------------------------------
data_ver_fk_cur | data_ver           | cur                 | dimension  | dim_id     |
--------------------------------------------------------------------------------------
data_ver_fk_reg | data_ver           | reg                 | dimension  | dim_id     |
--------------------------------------------------------------------------------------
data_ver_fk_ven | data_ver           | ven                 | dimension  | dim_id     |
---------------------------------------------------------------------------------------

我想删除结果表中存在的所有约束。请给我建议。

【问题讨论】:

标签: sql postgresql


【解决方案1】:

查看 Magnus Hagander 的 post,它提供了删除和重新创建所有参照完整性的脚本。您可能可以根据自己的需要采用它。

【讨论】:

  • 将外键创建为可延迟也是一种选择。
猜你喜欢
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 2011-06-09
  • 1970-01-01
相关资源
最近更新 更多