2

我正在使用 MySQL 5.5.25 版并尝试在同一张表上创建一个外id_parentid

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我得到完全相同的架构,并且无论我运行多少次查询都不会应用限制。

4

1 回答 1

2

ON DELETE RESTRICT ON UPDATE RESTRICT是 FK 约束的默认行为,这就是为什么您在查看模式时看不到任何差异的原因。这是暗示的。

于 2013-11-01T02:55:35.433 回答