每当我尝试将外键约束设置为“NO ACTION”时,MySQL 工作台会自动将其设置为“RESTRICT”

问题描述

我正在尝试将外键设置为约束删除和更新为“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 ACTIONRESTRICT 是同义词。

"13.1.20.5 FOREIGN KEY Constraints"

NO ACTION:来自标准 SQL 的关键字。在 MySQL 中,相当于 RESTRICT

Workbench 似乎只是选择在 RESTRICT 上显示 NO ACTION(好吧,它必须选择一个并选择 MySQL 特定的一个......)。但这并不意味着什么不同。