【问题标题】:Which tables, triggers, views are affected by a drop column cascade in PostgreSQL [duplicate]哪些表、触发器、视图受 PostgreSQL 中的删除列级联影响 [重复]
【发布时间】:2019-05-22 10:56:15
【问题描述】:

Django 创建了一个从表中删除字段的迁移:

ALTER TABLE "my_table" DROP COLUMN "my_deprecated_field" CASCADE;
COMMIT;

我想知道CASCADE 有哪些后果,即哪些其他列、表、触发器等会受到它的影响。

既然没有EXPLAIN ALTER,那我还得通过什么其他的途径去查?

【问题讨论】:

标签: django postgresql migration alter


【解决方案1】:

我认为它也会删除所有依赖或引用(外键等)该对象的对象。

假设 Table A 具有到 Table B 的不可为空的外键。

如果有人放弃Table BTable A 会发生什么?表 A 的行将指向什么?它不能指向 null,因为它不可为空。

CASCASE 出现在这里并在Table B 上使用它也会导致Table A 行的丢失。

你可以在这里看到一个例子http://www.postgresqltutorial.com/postgresql-drop-column/

【讨论】:

  • 感谢您的回答。我想获得将要删除的内容的完整列表。我阅读了文档,但我不知道我的数据库的哪些部分会受到影响。
  • 这是错误的。依赖对象是约束,而不是行。 Table A 将保留其所有数据,但引用 Table B 的字段将不再引用任何内容
猜你喜欢
  • 1970-01-01
  • 2014-06-25
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2023-03-21
相关资源
最近更新 更多