以下的文章主要向大家讲述的是快速掌握对DB2创建外键时选项的方案,其中包括测试表的正确创建,对On Delete 选项的介绍,以及其他内容的描述,以下就是文章的主要内容的描述,望大家有所收获。

创建外键时的选项:

1.创建测试表:

    droptablestudent; droptableclass; droptablestudent_class; Createtablestudent(student_idintegernotnull,student_namevarchar(200),CONSTRAINTP_KEY_1primarykey(student_id))inluzl_32k_tbindexinluzl_32k_tb; Createtableclass(class_idintegernotnull,class_namevarchar(200),CONSTRAINTP_KEY_2primarykey(class_id))inluzl_32k_tbindexinluzl_32k_tb; Createtablestudent_class(student_class_idinteger,student_idinteger,class_idinteger)inluzl_32k_tbindexinluzl_32k_tb; altertablestudent_classaddconstraintif_classforeignkey(class_id)referencesclass(class_id)ONDELETEcascadeONUPDATERESTRICT; altertablestudent_classaddconstraintif_studentforeignkey(student_id)referencesstudent(student_id)ONDELETEcascadeONUPDATERESTRICT; Insertintostudent(student_id,student_name)values(1,'luzl'); Insertintoclass(class_id,class_name)values(1,'db2'); Insertintostudent_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.另外还需要注意一点,父表中的字段必须是主键,才能做为子表的外键。以上的相关内容就是对快速掌握DB2创建外键时的选项的介绍,望你能有所收获。

上述的相关内容就是对DB2创建外键时的选项的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

    DB2 多分区数据库备份的正确操作流程演示DB2 存储过程的异常处理器类型有几种?对DB2 增量备份的正确运用描述DB2数据库进行备份在AIX如何操作?DB2 并行版本中的查询优化登峰造极!