今天研究了下创建外键的选项:
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.另外需要注意一点,父表中的字段必须是主键,才能做为子表的外键。
分享到:
相关推荐
DB2 701 考试题库涵盖了IBM的数据库管理产品DB2的相关知识,主要涉及权限管理、视图创建、表空间操作、索引构建、外键约束以及系统目录等多个方面。以下是对这些知识点的详细说明: 1. **用户权限与表空间管理**: ...
1. **创建连接**:通过“文件”菜单中的“连接”选项或使用工具栏上的相应按钮来创建新的数据库连接。用户需要输入数据库服务器的相关信息,如主机名、端口号、数据库名称以及登录凭证。 2. **断开连接**:“文件”...
在DB2中,使用FOREIGN KEY约束可以创建外键关系,保证表中的数据与其他表中的数据相符合。其中,ON UPDATE NO ACTION选项意味着当被引用表中的数据被更新时,引用这些数据的外键列不允许进行更新操作。 以上便是...
- 对于小型创业公司,理想的DB2版本可能是DB2 Express-C(问题01),它是一个经济高效的选项。 - 连接到远程数据库时,需要先编目远程节点和数据库(问题03)。 - DB2 Enterprise、Workgroup等版本具有不同的特性...
通过这一权限,USER7可以定义表间的参照完整性约束,将表T.T1的COL1列作为父键使用,从而在创建外键时引用该列。这有助于保持数据库中相关表之间数据的一致性和完整性。 #### 删除规则(Deletion Rules)与数据一致...
- **描述**: 当数据库表之间的外键约束关系不一致时触发此错误。 ##### 4. 数据库状态异常 - **SQLCODE**: +09801 - **SQLSTATE**: 568 - **描述**: 表示数据库处于一种不正常的运行状态,可能会影响数据的一致性和...
创建非日志表需要明确指定`NOT LOGGED`选项,并且通常只适用于对数据一致性和恢复要求较低的场景。 #### 20. 查询数据库输入? 查询数据库输入涉及到数据库的接口和API,这通常是指数据库管理系统提供的编程接口,...
例如,当创建或修改分区表空间、创建或修改分区索引、插入新数据,或者创建二级索引时,都会触发这个状态。在这种状态下,管理员通常需要执行 REORG(重组)操作以优化数据布局。在对这些对象进行 REORG 之前,应先...
这一步骤通常涉及创建ER图,其中包含实体、属性和关系,并定义主键和外键,以确保数据的完整性和一致性。 #### 推荐的逻辑数据建模策略 - **规范化**:通过分解数据以减少冗余和依赖,提高数据的完整性和一致性。 ...
此外,DB2提供了用户自定义数据类型(UDT)功能,但过度使用UDT可能导致编程时的数据类型转换,进而降低应用性能,故需谨慎使用。 #### 合理使用索引策略 索引是提升数据库查询效率的关键结构。合理的索引设计可以...
- 安装过程:讲解如何在不同操作系统上安装DB2,包括下载、安装选项选择、环境变量设置等。 - 实例创建与配置:理解DB2实例的概念,学会创建、启动和停止数据库实例。 3. **数据库对象** - 表的创建与管理:学习...
3. **表和数据操作**:在DB2中,你可以创建各种类型的表,定义列、主键、外键等约束。通过INSERT语句插入数据,UPDATE和DELETE语句修改和删除数据,SELECT语句用于查询数据。此外,还可以使用JOIN操作连接多个表,...
10. **云集成**:随着云计算的发展,IBM DB2也提供了云部署选项,如IBM Cloud上的DB2 on Cloud,实现了数据库的云端管理和扩展。 通过深入学习“IBM DB2 课堂讲义”,无论是数据库管理员、开发人员还是系统分析师,...
这份文档详尽地列举了各种DB2数据库在执行SQL语句时可能出现的错误代码及其对应的SQLSTATE,以及相关的错误信息。下面,我们将对其中的一些常见错误进行解析: 1. 错误代码00000:表示SQL语句成功完成,没有任何...
- **+626 (01529)**:删除UNIQUE约束时,如果该约束是某个外键的唯一参照,则不能删除。 - **+645 (01528)**:尝试在NOT NULL列上设置NULL值。 - **+650 (01538)**:无法在非事务上下文中执行某些操作。 - **+653 ...
该文档可能详细介绍了DB2的安装过程,包括硬件和软件需求,以及安装选项的选择。此外,它还可能涵盖了数据库实例的创建、配置,以及数据库对象如表、视图、索引的管理。 "quicklab5"、"quicklab14a"、"quicklab4...
- **描述**:在创建2型索引时设置了SUBPAGES参数,这通常是不允许的。 - **处理方法**:移除SUBPAGES语句或确保其符合规范。 **8. +11701525 - 要插入的值的个数不等于被插入表的列数** - **描述**:插入操作时...
- 实际操作时需要注意匹配文件格式与导入命令中的选项。 #### 二、DB2 表与视图操作 - **创建临时表:** - `create table temp_bas (select * from table_a where ...)`:基于`table_a`表创建一个名为`temp_bas`...