下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CREATE TABLE SCOTT.MID_A_TAB( A VARCHAR2(20 BYTE,B VARCHAR2(10 BYTE,DETPNO VARCHAR2(10 BYTETABLESPACE USERS ;CREATE TABLE SCOTT.MID_B_TAB( A VARCHAR2(20 BYTE,B VARCHAR2(10 BYTE,DEPTNO VARCHAR2(10 BYTETABLESPACE USERS ;-给 MID_A_TAB表添加主键alter table mid_a_tab add constraint a_pk primary key (detpno; -给
2、 MID_B_TAB表添加主键alter table mid_b_tab add constraint b_pk primary key(a;-给子表 MID_B_TAB添加外键 , 并且引用主表 MID_A_TAB的 DETPNO 列, 并通 过 on delete cascade指定引用行为是级联删除alter table mid_b_tab add constraint b_fk foreign key (deptno references mid_a_tab (detpno on delete cascade;-向这样就创建了好子表和主表向主表添加数据记录SQL insert into
3、 mid_a_tab(a,b,detpno values(1,1,10; 已创建 1 行。已用时间 : 00: 00: 00.00向子表添加数据SQL insert into mid_b_tab(a,b,deptno values(1,2,6;insert into mid_b_tab values(1,2,6*第 1 行出现错误 :ORA-00001: 违反唯一约束条件 (SCOTT.B_PK已用时间 : 00: 00: 00.00可见上面的异常信息,那时因为子表插入的 deptno 的值是 6,然而此时我 们主表中detpno 列只有一条记录那就是 10,所以当子表插入数据时,在父表中不能
4、 够找到该引用列的记录,所以出现异常。但我们可以这样对子表的数据的进行插入 (即:在子表的 deptno 列插入 null, 因为我们在建表的时候并没有对该列进行 not null的约束限制 :SQL insert into mid_b_tab(a,b,deptno values(3,2,null; 已创建 1 行。已用时间 : 00: 00: 00.00现在如果我们把子表 mid_b_tab中 deptno 列加上 not null约束。SQL alter table mid_b_tab modify deptno not null;alter table mid_b_tab modify
5、deptno not null*第 1 行出现错误 :ORA-02296: 无法启用 (SCOTT. - 找到空值已用时间 : 00: 00: 00.01上面又出现异常, 这是因为现在 mid_b_tab表中有了一条记录, 就是我们先 前添加的那条记录。3, 2, null现在我们要把该表的 deptno 列进行 not null约束限制,所以 oracle 不让 我们这样干。那我们就只有把该表给 delete 或 truncate 掉,然后在修改 deptno 列为非 空。SQL delete from mid_b_tab;已删除 2行。已用时间 : 00: 00: 00.01再次修改子表
6、mid_b_tab表的 deptno 列为非空。SQL alter table mid_b_tab modify deptno not null;表已更改。已用时间 : 00: 00: 00.01修改成功!我们再次插入数据insert into mid_b_tab(a,b,deptno values(13,2,null;试试。 SQL insert into mid_b_tab(a,b,deptno values(13,2,null; insert into mid_b_tab(a,b,deptno values(13,2,null*第 1 行出现错误 :ORA-01400: 无法将 NULL
7、 插入 (SCOTT.MID_B_TAB.DEPTNO已用时间 : 00: 00: 00.00看见现在 oracle 不让我们插入空值了。所以我们在创建子表的外键约束时,该表的引用列必须要进行 not null限 制,也可以在该列创建 unique ,或 primary key约束,并且引用列与被引用列的数据类 型必须相同。SQL insert into mid_b_tab(a,b,deptno values(13,2,10; 已创建 1 行。已用时间 : 00: 00: 00.01此时数据插入成功,因为此时插入的 10,在主表中的被引用列中已经存在 了。现在我们一系列的操作:SQL select * from mid_b_tab ;A B DE- - -13 2 10已用时间 : 00: 00: 00.00SQL se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CN119597749A 数据源的版本管理方法及装置 (株式会社日立制作所)
- 译林版(三起)三年级英语上册课件Unit 3 Are you Su Hai第2课时(Cartoon time Letters in focus)
- 精算师考试精算师考试密押卷(含详解)
- 计算机高级考试冲刺卷(解析版)
- 黄褐斑诊疗共识要点2026
- 电子商务概论(第八版)(上篇共上中下3篇)
- 人工智能与证券市场异常交易监测
- 2026 年台风期间景区暂停开放安全科普
- 人工智能驱动的保险营销模式
- 2025年周口职业技术学院高职单招职业技能考试题库及完整答案详解【网校专用】
- 浙江省劳动合同
- 2026天津石油职业技术学院招聘20人笔试题库带答案详解(B卷)
- 2026年交管12123驾驶证学法减分试题(含参考答案)
- 2025年临沂市公安机关招录警务辅助人员笔试真题
- 《自我保护免受伤害》教学课件 - 2026-2027 学年统编版(新教材)小学道德与法治四年级上册
- 部编版五升六语文暑假衔接作业完整版 基础巩固+新知预习含答案可打印
- 2026年(完整版)国家GCP培训考试题库及参考答案(完整版)
- 2026年廊坊银行人员招聘笔试备考试题及答案详解
- (2026年)手卫生规范与职业防护培训课件
- 幼儿园保健医岗位职责培训试题及答案
- 中考英语作文10宾语从句写作句型练习
评论
0/150
提交评论