教你快速掌握DB2数据库创建外键时的选项_DB2_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > DB2 > 教你快速掌握DB2数据库创建外键时的选项

教你快速掌握DB2数据库创建外键时的选项

 2013/8/9 17:20:43    程序员俱乐部  我要评论(0)
  • 摘要:创建外键时的选项:1.创建测试表:droptablestudent;droptableclass;droptablestudent_class;Createtablestudent(student_idintegernotnull,student_namevarchar(200),CONSTRAINTP_KEY_1primarykey(student_id))inluzl_32k_tbindexinluzl_32k_tb;Createtableclass
  • 标签:创建 数据库 数据 教你 外键

创建外键时的选项:

1.创建测试表:

drop table student;
drop table class;
drop table student_class;
Create table student(student_id integer not null,student_name varchar(200), CONSTRAINT P_KEY_1 primary key (student_id)) in luzl_32k_tb index in luzl_32k_tb ;
Create table class(class_id integer not null,class_name varchar(200), CONSTRAINT P_KEY_2 primary key (class_id)) in luzl_32k_tb index in luzl_32k_tb ;
Create table student_class(student_class_id integer,student_id integer,class_id integer) in luzl_32k_tb index in luzl_32k_tb;
alter table student_class add constraint if_class foreign key(class_id) references class(class_id) ON DELETE cascade ON UPDATE RESTRICT;
alter table student_class add constraint if_student foreign key(student_id) references student(student_id) ON DELETE cascade ON UPDATE RESTRICT;
Insert into student(student_id,student_name) values(1,'luzl');
Insert into class(class_id,class_name) values(1,'db2');
Insert into student_class(student_class_id,student_id,class_id) values(1,1,1);

2.On Delete 的选项有

Restrict/no action/cascade/set null.其中cascade选项指定的话,如果删除父记录,依赖于他的子记录也会自动删除.相当于级联删除.如果指定no action和cascade都会报错,因为还有子记录所以无法删除该记录.set nul允许删除父记录并且l会将子表中与父表关联的字段设置为null.

3.On Update 只有两个选项 no action/restrict.它们在更新和删除时并没有区别:如果与子表关联不允许删除.

4.另外还需要注意一点,父表中的字段必须是主键,才能做为子表的外键。

文中的介绍有一部分时以代码的形式展现出来的,可能对与刚入门的初学者来说比较难理解,本文为大家啊整理的条理比较明了,希望对大家寓所帮助。

发表评论
用户名: 匿名