MySQL在表上设置完整性检查

时间:2012-07-03 09:56:46

标签: mysql

在MySQL中我有两个表

角色

role_id | role_name

user_roles

user_id | role_id
user_roles表中的

role_id是 FOREIGN KEY 。现在,如果 user_roles

上还存在role_id,我想限制删除角色表中的行

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

我在某处读到存储引擎 MyISAM 不支持 FOREIGN KEY 所以请指导我购买两个存储引擎( MyISAM InnoDB的

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您正确读到MyISAM引擎不支持外键完整性检查。我的建议是去找innodb。

大多数时候还有另一种选择,当我想坚持MyISAM表时,我会使用它,即在前端管理所有这些。但有时这并不好,因为你在前端增加了更多的麻烦。

转到 InnoDB