MySQL 外键约束

当然你可以在逻辑中确保数据的关联性,但是要考虑并发、孤儿数据等等问题。现在数据库可以搞定这些,为何不试试呢。

注意:
1、必须使用InnoDB引擎;
2、外键必须建立索引(INDEX);
3、外键绑定关系这里使用了“ ON DELETE CASCADE”,意思是如果外键对应数据被删除,将关联数据完全删除,更多信息请参考MySQL手册中关于InnoDB的文档;
4、在引用表中,必须有一个索引,
外键列以同样的顺序被列在其中作为第一列。
这样一个索引如果不存在,它必须在引用表里被自动创建。
5、在引用表中,必须有一个索引,被引用的列以同样的顺序被列在其中作为第一列。
6、不支持对外键列的索引前缀。这样的后果之一是BLOB和TEXT列不被包括在一个外键中,这是因为对这些列的索引必须总是包含一个前缀长度。
7、如果CONSTRAINT symbol被给出,它在数据库里必须是唯一的。如果它没有被给出,InnoDB自动创建这个名字。

ALTER TABLE test_spec ADD constraint brand FOREIGN KEY (brand_id) REFERENCES test_brand(id) ON DELETE CASCADE
ALTER TABLE car_spec ADD constraint series FOREIGN KEY (series_id) REFERENCES car_series(id) ON DELETE CASCADE
更新表 表名 增加外键 brand =外键名 brand_id=本表字段 关联到test_brand(id)=test_brand表的id