然後建立兩個有關連欄位的資料表:
CREATE TABLE category(
id INT NOT NULL PRIMARY KEY) TYPE = INNODB;
CREATE TABLE product(
id INT NOT NULL,
parent_id INT NOT NULL,
FOREIGN KEY(parent_id) REFERENCES category(id) ON DELETE CASCADE
) TYPE = INNODB;
以上是兩個有關連的資料表,product.parent_id是關連到category.id的,而且當category.id刪除時,product.parent_id的相對行也會一併刪除。id INT NOT NULL PRIMARY KEY) TYPE = INNODB;
CREATE TABLE product(
id INT NOT NULL,
parent_id INT NOT NULL,
FOREIGN KEY(parent_id) REFERENCES category(id) ON DELETE CASCADE
) TYPE = INNODB;
看以上的sql應該可以了解它的意思,但我們也來說明一下關連刪除的部份。其實除了關連刪除外,還有一個關連更新,以下是結構:
[ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
CASCADE 將關連的資料也進行刪除或修改。
SET NULL 將關連的紀錄設定成 NULL。
NO ACTION 如有關連資料,將會禁止父資料表進行刪除或修改。
RESTRICT 跟NO ACTION相同。
沒有留言:
張貼留言