MySQL外键限制没有被保存

时间:2013-11-01 01:20:50

标签: mysql foreign-keys

我使用的是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时,我得到完全相同的模式,无论我运行查询多少次都不会应用限制。

1 个答案:

答案 0 :(得分:2)

ON DELETE RESTRICT ON UPDATE RESTRICT是FK约束的默认行为,这就是您在查看架构时看不到差异的原因。这是隐含的。