A-A+
在mysql中设置外键约束
一、如何添加外键?
ALTER TABLE table_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/on update,用于定义delete,update操作
1.CASCADE:外键表中外键字段值会被更新,或所在的列会被删除
2.RESTRICT:RESTRICT也相当于no action,即不进行任何操作.即拒绝父表update外键关联列,delete记录
3.set null:父表外键关联字段被update ,delete时,子表的外键列被设置为null
二、外键前提条件?
1)所有tables必须是InnoDB型,它们不能是临时表.因为在MySQL中只有InnoDB类型的表才支持外键
2)所有要建立外键的字段必须建立索引
3)对于非InnoDB表,FOREIGN KEY子句会被忽略掉
三、如何查看外键和删除外键?
SHOW CREATE TABLE table_name; #可以查看到新建的表的代码以及其存储引擎.也就可以看到外键的设置
删除外键 alter table drop foreign key‘外键名’