外键约束
- 一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键)
- FOREIGN KEY 约束用于预防破坏表之间连接的动作
- FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一
通过两个表举例外键:
student表
class表
- student表里的cid作为外键指向class表里的id
- student表里的cid是student表里的外键
- class表里的id是class表里的主键
注意:
- 给表student的cid赋值时这个值必须存在于表class的id里,例如id的值有1和2,如果赋值给cid的值是3,那么就会报错
- 如果删除id字段或修改id字段的值时,先判断cid里的值是否存在此id字段的值,如果存在则会报错
添加外键约束
- 创建表时添加外键约束
[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]
- 代码示例
CREATE TABLE student( id int(10) PRIMARY key, NAME varchar(10), cid int(10), CONSTRAINT fk_cid FOREIGN KEY (cid) REFERENCES class(id) );
- 给已存在表的字段添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT (外键名字) FOREIGN KEY (外键字段名) REFERENCES 外表表名(主键字段名);
- 代码示例
ALTER TABLE student ADD CONSTRAINT fk_cid FOREIGN KEY (cid) REFERENCES class(id);
删除外键约束
ALTER TABLE student DROP FOREIGN KEY 外键名;
代码示例
ALTER TABLE student DROP FOREIGN KEY fk_cid;