Mybatis 有關級聯刪除和更新
阿新 • • 發佈:2019-01-09
父級 主鍵被其它表作為外來鍵 子級表示把其它表的主鍵作為自己的外來鍵
RESTRICT、NO ACTION、SET NULL 和
CASCADE
RESTRICT、NO ACTION表示子級有資料改變是父級資料不更新
SET NULL 表示父級在更新或者刪除時將子記錄列的值設為null
ON DELETE CASCADE 表示父記錄刪除時子記錄對應的列資料也刪除
ON UPDATE CASCADE 表示父記錄更新時子記錄對應的列資料也更新
1:在建立表的時候就對外來鍵定義成級聯刪除或者更新
CREATE TABLE `order` (
`id` int(4) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
CONSTRAINT `約束名(可隨意,不可重複)` FOREIGN KEY (`外來鍵名在本表中列名`) REFERENCES `外來鍵表名` (`外來鍵表列名`) ON DELETE CASCADE ON UPDATE CASCADE
)這樣把父級刪除後子級的資料也會刪除
2:這種方法是最笨的方法 也就是一條一條把把父級作為外來鍵的子記錄的資料 寫sql一條一條的刪除 通過父級的id 去刪除
例如: delete from order where "外來鍵名在本表中列名" =user.id;