DB2創(chuàng)建外鍵時(shí)選項(xiàng)的掌握方案描述
以下的文章主要向大家講述的是快速掌握DB2創(chuàng)建外鍵時(shí)選項(xiàng)的方案,其中包括創(chuàng)建測(cè)試表,對(duì)On Delete 的選項(xiàng)介紹,以下就是文章的主要內(nèi)容的詳細(xì)描述,望大家在瀏覽之后會(huì)對(duì)其有更深的了解。
創(chuàng)建外鍵時(shí)的選項(xiàng):
1.創(chuàng)建測(cè)試表:
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 的選項(xiàng)有
Restrict/no action/cascade/set null.其中cascade選項(xiàng)指定的話,如果刪除父記錄,依賴于他的子記錄也會(huì)自動(dòng)刪除.相當(dāng)于級(jí)聯(lián)刪除.如果指定no action和cascade都會(huì)報(bào)錯(cuò),因?yàn)檫€有子記錄所以無(wú)法刪除該記錄.set nul允許刪除父記錄并且l會(huì)將子表中與父表關(guān)聯(lián)的字段設(shè)置為null.
3.On Update 只有兩個(gè)選項(xiàng) no action/restrict.它們?cè)诟潞蛣h除時(shí)并沒(méi)有區(qū)別:如果與子表關(guān)聯(lián)不允許刪除.
4.另外還需要注意一點(diǎn),父表中的字段必須是主鍵,才能做為子表的外鍵。
上述的相關(guān)內(nèi)容就是對(duì)快速掌握DB2創(chuàng)建外鍵時(shí)的選項(xiàng)的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】
- DB2 CMO安裝7.1.2.6補(bǔ)丁之后會(huì)出現(xiàn)什么?
- IBM DB2中新手要了解的東西有哪些?
- DB2 For z/OS or OS/390性能如何正確管理?
- IBM DB2 Content Manager V83安裝與SQL0818
- 掛起DB2 diag.log中看到了什么?