我有2個表:MySQL的外商鍵:由於認識RESTRICT和更新
1)kind_basis(兒童基礎數據)
id bigint(20) unsigned NO PRI NULL auto_increment
vorname varchar(64) NO NULL
nachname varchar(64) NO NULL
geburtsland_id bigint(20) unsigned NO MUL NULL
2)liste_land(國家名單)
id bigint(20) unsigned NO PRI NULL auto_increment
iso varchar(2) NO NULL
landname varchar(255) NO NULL
它們之間有一個releation:
ALTER TABLE `kind_basis`
ADD CONSTRAINT `fk_geburtsland_id`
FOREIGN KEY (`geburtsland_id`)
REFERENCES `liste_land` (`id`)
ON DELETE RESTRICT
ON UPDATE CASCADE ;
爲什麼下面的查詢是可能的嗎?
DELETE
FROM `liste_land`
WHERE `liste_land`.`id` = 6
我不應該得到這樣的消息:「你可以不刪除該行,因爲它是在另一個表(kind_basis)使用?
如果我更新liste_land一排,將它被在kind_basis還更新了?
什麼是家長,什麼是孩子在我的情況之上? – Gabriel
子是外鍵的表,父是被引用的表(liste_land) – Mihai
但是我可以成功刪除父表中的一行(liste_land),雖然有一個引用(從kind_basis - >刪除 - > restrict)。推理中的錯誤是什麼? – Gabriel