从表和所有其他关联表中删除记录

时间:2016-03-31 23:20:09

标签: postgresql pgadmin

在包含多个表的给定数据库中

从一个主表以及所有其他关联表中删除数据(1条记录)的有效方法是什么。

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是定义在FK上删除的级联行为

例如:

CREATE TABLE orders (
    order_id integer PRIMARY KEY,
    ...
);

CREATE TABLE order_items (
    ...
    order_id integer REFERENCES orders ON DELETE CASCADE,
    ...
);

在这种情况下,如果有人删除了订单,订单商品也会被删除。 CASCADE指定当删除引用的行时,也应自动删除引用它的行。

参考: http://www.postgresql.org/docs/current/static/ddl-constraints.html