码迷,mamicode.com
首页 > 其他好文 > 详细

实体外键约束、级联操作

时间:2014-11-22 02:00:01      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   sp   for   strong   数据   on   

【实体关系】
1.一对多:在多的表,增加一个字段,用于只想该实体所悟的另外的实体的标识。
2.多对多:利用一个中间表,表示实体之间的对应关系。(中间表和实体表是一对多关系)

【外键约束】foreign key (class_id) references tb_class (class_id);

drop table if exists tb_class;
create table tb_class(
    class_id int primary key auto_increment,
    class_name varchar(10) not null default ‘mysql‘ comment ‘班级姓名‘
) character set utf8;

drop table if exists tb_student;
create table tb_student(
    stu_id int primary key auto_increment,
    stu_name varchar(10) not null default ‘‘,
    class_id int,
    foreign key (class_id) references tb_class (class_id) on delete set null
) character set utf8;

insert into tb_class values (null,‘MySQL001‘);
insert into tb_student values (null,‘张‘,1);

【修改外键】先删除,在新建。通过修改表完成

alter table tb_name drop foreign key 外键名称;

alter table tb_student drop foreign key tb_student_ibfk_1;

alter table tb_name add foreign key 外键定义;

alter table tb_student add foreign key (class_id) references tb_class (class_id) on delete set null;

【级联操作】
当主表数据发生改变时,与之关联的从表数据应该如何处理:
主表更新:on update
主表删除:on delete

【允许的级联动作】on delete set null on update cascade
cascade关联操作,如果主表被更新或删除,那么从表也会执行相应的操作。
set null设置为null,表示从表不指向任何主表记录。
restrict:拒绝主表的相关操作。

alter table tb_student add foreign key (class_id) references tb_class (class_id) on delete set null on update cascade;

 

实体外键约束、级联操作

标签:style   blog   ar   color   sp   for   strong   数据   on   

原文地址:http://www.cnblogs.com/ayee/p/4114591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!