[問題] SET NULL 問題
我使用的是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
08/04 21:56, 2F
→
08/04 21:57, , 3F
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
08/05 02:09, 4F