3 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
是的,這將按您預(yù)期的那樣工作。不幸的是,我似乎很難在MySQL手冊(cè)中找到對(duì)此的明確聲明。
外鍵表示該值必須存在于另一個(gè)表中。NULL表示沒(méi)有值,因此當(dāng)您將列設(shè)置為NULL時(shí),嘗試對(duì)其施加約束是沒(méi)有意義的。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
上面的作品,但這不是。注意ON DELETE CASCADE
CREATE DATABASE t;
USE t;
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT NULL,
parent_id INT NULL,
FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE
) ENGINE=INNODB;
INSERT INTO child (id, parent_id) VALUES (1, NULL);
-- Query OK, 1 row affected (0.01 sec)
添加回答
舉報(bào)