mysql-外键约束

2017-02-22  本文已影响880人  戏之地

创建外键

表的结构已经建好,如何修改为外键

ADD CONSTRAINT abc -- abc作为别名 
FOREIGN KEY(dept_id) REFERENCES department(id); ```
在开始创建的时候创建外键

create table dep (
id int primary key auto_increment,
dep_id int ,
foreign key(dep_id) references dep(id)
)
[CONSTRAINT symbol] FOREIGN KEY (从表的字段)

REFERENCES table_main (主表的字段)

[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION} ```

CONSTRAINT symbol:可以给这个外键约束起一个名字,有了名字,以后找到它就很方便了。
如果不加此参数的话,系统会自动分配一个名字。
FOREIGN KEY:将从表中的字段1作为外键的字段。
REFERENCES:映射到主表的字段2。
ON DELETE后面的四个参数:代表的是当删除主表的记录时,所做的约定。
RESTRICT(限制):如果你想删除的那个主表,它的下面有对应从表的记录,此主表将无法删除。
CASCADE(级联):如果主表的记录删掉,则从表中相关联的记录都将被删掉。
SET NULL:将外键设置为空。
NO ACTION:什么都不做。
注:一般是RESTRICT和CASCADE用的最多。

删除外键

ALTER TABLE student DROP FOREIGN KEY abc;

外键的四种形式

on delete的后面可以跟4个参数

上一篇 下一篇

猜你喜欢

热点阅读