2013-11-01 79 views
1

我正在使用MySQL版本5.5.25並嘗試在同一個表上創建一個從id_parentid的外鍵。MySQL外鍵限制不被保存

CREATE TABLE `acl_roles` (
`id` int(20) unsigned NOT NULL AUTO_INCREMENT,                                                                           
`name` varchar(60) NOT NULL,                                                                                
`id_parent` int(20) unsigned DEFAULT NULL,                                                                            
PRIMARY KEY (`id`),                                                                                  
KEY `FK_acl_roles` (`id_parent`),                                                                               
CONSTRAINT `FK_acl_roles` FOREIGN KEY (`id_parent`) REFERENCES `acl_roles` (`id`)                                                                   
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 

當我做

ALTER TABLE `acl_roles` ADD CONSTRAINT `FK_acl_roles` FOREIGN KEY (`id_parent`) REFERENCES `acl_roles` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT ; 

出於某種原因沒有錯誤後執行然而,當我執行SHOW CREATE TABLE acl_roles我得到完全相同的架構和限制不適用,無論多少次,我跑了查詢。

回答

1

ON DELETE RESTRICT ON UPDATE RESTRICT是FK約束的默認行爲,這就是爲什麼您在查看架構時看不到差異的原因。這是隱含的。

+0

我明白了,所以沒有辦法明確這一點。謝謝! – Julian