[問題] SET NULL 問題

看板Database作者 (奸商)時間13年前 (2012/08/04 15:15), 編輯推噓2(202)
留言4則, 1人參與, 最新討論串1/1
我使用的是MySQL InnoDB 目前有兩個資料表 announcement +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | class | int(11) | YES | MUL | NULL | | | subject | varchar(50) | NO | | NULL | | | content | varchar(100) | NO | | NULL | | | start_date | date | NO | | NULL | | | end_date | date | NO | | NULL | | | contact_id | int(11) | YES | MUL | NULL | | +------------+--------------+------+-----+---------+----------------+ announcement_class +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | description | varchar(50) | NO | UNI | NULL | | +-------------+-------------+------+-----+---------+----------------+ CONSTRAINT `announcement_ibfk_4` FOREIGN KEY (`class`) REFERENCES `announcement_class` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `announcement_ibfk_3` FOREIGN KEY (`contact_id`) REFERENCES `staff` (`id`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 但是我這樣刪除nannouncement_class的時候 announcement裡面若有record參照到被刪除的nannouncement_class 理應上class要被設為NULL 但是我實際執行起來 那些有被參照到的record也被一併連鎖刪除了 請問是什麼問題呢? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.58.62

08/04 21:56, , 1F
我遇過類似的的怪問題,請先執行:
08/04 21:56, 1F

08/04 21:56, , 2F
show create table announcement_class;
08/04 21:56, 2F

08/04 21:57, , 3F
看看有沒有針對同一欄位重複設定了foreign key。
08/04 21:57, 3F
您好 出現了這些... | announcement_class | CREATE TABLE `announcement_class` ( `id` int(11) NOT NULL auto_increment, `description` varchar(50) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `description` (`description`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 | ※ 編輯: herman602 來自: 219.68.58.62 (08/05 01:22) 已解決 肇因於前端SQL statement的問題... 導致讓我覺得被刪除了@@! 謝謝TeemingVoid大大~~~~!! ※ 編輯: herman602 來自: 219.68.58.62 (08/05 02:02)

08/05 02:09, , 4F
兩三回合水球就發現問題點, 原PO絕頂聰明反應真快! ^^
08/05 02:09, 4F
文章代碼(AID): #1G7CmcWD (Database)