我在我的數據庫中有兩個名爲user
和account
的表。 user
表具有名爲account_id
的外鍵列,該列綁定到表account
的id
列。如何刪除PostgreSQL中具有有效引用鍵的行
更具體地說,簡化的數據庫結構如下:
CREATE TABLE account (
id INTEGER PRIMARY KEY,
name VARCHAR NOT NULL UNIQUE
);
CREATE TABLE "user" (
id INTEGER PRIMARY KEY,
login VARCHAR NOT NULL UNIQUE,
pass VARCHAR NOT NULL,
account_id INTEGER NOT NULL,
CONSTRAINT account_fk FOREIGN KEY (account_id)
REFERENCES account (id) ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE
);
我想知道是否可以刪除表user
一行也沒有刪除account
由特定的記錄被引用?
每當我嘗試刪除account
時,表user
中的相關行也會被刪除(由於ON DELETE CASCADE
子句)。但是,我需要在另一個方向發生同樣的一系列事件。
如果兩個或兩個以上用戶引用_the same_ account.id,會發生什麼情況? – wildplasser
我有一對一的關係。 – irko
如果你真的有一對一的關係,你可以將兩個表合併爲一個。無需額外的邏輯! – wildplasser