【问题标题】:Why doesn't my cascading delete work in PostgreSQL?为什么我的级联删除在 PostgreSQL 中不起作用?
【发布时间】:2020-02-26 15:21:34
【问题描述】:

我正在尝试在 PostgreSQL 中配置级联删除并创建了这两个表:

CREATE TABLE "public"."User" (
  id SERIAL PRIMARY KEY,
  name TEXT
);

CREATE TABLE "public"."Post" (
  id SERIAL PRIMARY KEY,
  title TEXT,
  author INTEGER,
  FOREIGN KEY (author) REFERENCES "public"."User" (id) ON DELETE CASCADE
);

现在,在创建了两条相关记录之后

INSERT INTO "public"."User"("name") VALUES('Alice') RETURNING "id", "name";
INSERT INTO "public"."AnotherPost"("title", "author") VALUES('Hello World', 1) RETURNING "id", "title", "author";

我希望在删除 Post 记录时,相应的 User 记录会被删除。

DELETE FROM "public"."Post" WHERE "id"=1;

但是,我创建的 User 记录仍然存在。谁能告诉我我缺少什么或为什么这不起作用?

【问题讨论】:

  • 相反,如果你删除一个用户,它的帖子也会被删除。
  • 啊,谢谢,我自己也想出来了????如果您将此作为答案发布,尽管我会接受它,以便您获得积分! :)

标签: sql postgresql foreign-keys cascading-deletes


【解决方案1】:

on delete cascade 外键的工作方式相反。 IE。如果您删除用户,其帖子也会被删除。

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 2013-06-22
    • 2013-03-03
    • 1970-01-01
    • 2011-10-11
    • 2012-11-18
    • 2011-06-11
    相关资源
    最近更新 更多