Mysql中的外键只有innodb存储引擎类型的表支持。
外键的作用是数据库表与表之前通过外键分为主从表,当主表的数据发生变化外键对应的从表也相应的改变,来保证数据的完整性和一致性。
外键的使用会对数据库服务器的性能有影响,要根据开发的场景来选择外键约束。
外键的添加:
ALTER TABLEtbl_name
ADD[CONSTRAINT 外键名] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE{CASCADE | SET NULL | NO ACTION | RESTRICT}]
[ON UPDATE{CASCADE | SET NULL | NO ACTION | RESTRICT}]
on delete,update时对应的4中约束类型
cascade:从表的字段值会被更新或者列被删除
setnull:主表的外键关联字段更新或删除时从表的外键列设置为null
noaction:外键约束时不进行任何操作
restrict:外键约束时不进行任何操作