日期:2014-05-16  浏览次数:20501 次

mysql数据库设置外键应该注意的几点

1、表的引擎必须是InnoDB;

2、添加外键的字段必须是添加了索引的字段。

3、添加外键的字段与关联的字段在类型上必须一致。

4、添加的外键名称,必须是数据库中独一无二的,不能和其他外键的值冲突。

1 楼 liangguanhui 2010-12-29  
其实最好把原因也说一下:
1、MySQL貌似只有InnoDB才会支持外键和事务
2、如果不加索引,当父表的键值发生更新时将会对子表加一个表级锁(oracle是这样,也是oracle经常发生性能问题的重要“凶手”,不知道mysql会不会这样);
3、4 就不需要解析了。
2 楼 还有也许 2010-12-29  
liangguanhui 写道
其实最好把原因也说一下:
1、MySQL貌似只有InnoDB才会支持外键和事务
2、如果不加索引,当父表的键值发生更新时将会对子表加一个表级锁(oracle是这样,也是oracle经常发生性能问题的重要“凶手”,不知道mysql会不会这样);
3、4 就不需要解析了。

谢谢您的补充