问题描述
我正在尝试将外键设置为约束删除和更新为“NO ACTION”,但出于某种原因,在我应用更改后,MysqL 工作台自行将其更改回“RESTRICTED”,我不不知道为什么要这样做。
这是当我尝试将更新和删除的约束更改为“无操作”时 MysqL Workbench 生成的代码
ALTER TABLE `forums`.`post_replies`
DROP FOREIGN KEY `fk_post_replies_users`;
ALTER TABLE `forums`.`post_replies`
ADD CONSTRAINT `fk_post_replies_users`
FOREIGN KEY (`user_id`)
REFERENCES `forums`.`users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
解决方法
NO ACTION
和 RESTRICT
是同义词。
"13.1.20.5 FOREIGN KEY Constraints":
NO ACTION
:来自标准 SQL 的关键字。在 MySQL 中,相当于 RESTRICT
。
Workbench 似乎只是选择在 RESTRICT
上显示 NO ACTION
(好吧,它必须选择一个并选择 MySQL 特定的一个......)。但这并不意味着什么不同。