Я пытаюсь настроить каскадное удаление в 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
все еще там. Может кто-нибудь сказать мне, что мне не хватает или почему это не работает?