1. 程式人生 > >Mybatis 有關級聯刪除和更新

Mybatis 有關級聯刪除和更新

父級 主鍵被其它表作為外來鍵              子級表示把其它表的主鍵作為自己的外來鍵

RESTRICTNO ACTIONSET NULL    CASCADE

RESTRICTNO 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;