1

在 MySQL 我有两个表

角色

role_id | role_name

用户角色

user_id | role_id

在 user_roles 表中 role_id 是FOREIGN KEY现在,如果user_roles表上也存在 role_id ,我想限制删除角色表中的行

我认为这可以通过创建表时的完整性设置来完成。我不知道 CASCADE 或 RESTRICT 是做什么的以及它们是如何工作的。

我在某处读到存储引擎MyISAM不支持FOREIGN KEY所以请指导我使用存储引擎(MyISAMInnoDB

4

2 回答 2

1

一切都在这里:http ://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

更新:关于 myisam:如何在 MySQL MyISAM 存储引擎上使用删除级联?

于 2012-07-03T10:02:23.277 回答
1

您没看错,MyISAM 引擎不支持外键完整性检查。我的建议是去 innodb。

大多数时候,当我想坚持使用 MyISAM 表时,我会使用另一个选项,即在前端管理所有这些。但有时这并不好,因为您在前端增加了更多的头痛。

去做InnoDB

于 2012-07-03T10:02:28.580 回答