下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢性阻塞性肺疾病更新2026
- 2026年全球首个千米级水下智能发球管汇创世界纪录技术拆解
- 2026年吉林省柳河县重点中学中考适应性考试初三化学试题模拟试题含解析
- 安徽省亳州市利辛县2026年初三下学期3月第一轮复习质量检测试题生物试题含解析
- 2026届江苏省苏州吴中学区初三下学期阶段性考试(一)生物试题试卷含解析
- 2026届上海市崇明县重点中学初三下期末考试(化学试题文)试卷含解析
- 2025-2026学年四川省绵阳市三台县初三下学期线上第四次模拟化学试题含解析
- 湖北省黄石市十四中学教育集团2026年初三下学期3月联考化学试题含解析
- 2026届江苏省泰州市泰州中学初三期末调研测试化学试题含解析
- 山东省济宁市曲阜师大附属实验校2026年初三下学期期中考试试卷生物试题含解析
- 2026年安徽城市管理职业学院单招职业适应性测试题库带答案详解(新)
- 应急管理干部警示教育以案促改心得体会
- 冀教版八年级英语下册Lesson28 Ms Lius Great Idea 核心素养教案
- 2026年小学六年级下册劳动教育教学计划
- 2026春小学科学青岛版(五四制2024)三年级下册教学计划、教案及每课教学反思(附目录)
- 2026年内蒙古化工职业学院单招综合素质考试题库及一套参考答案详解
- 2026上海交通大学医学院招聘91人考试备考题库及答案解析
- 2026年南京铁道职业技术学院单招职业适应性考试题库附答案详解(夺分金卷)
- 2026年春季人教PEP版五年级下册英语教学计划含教学进度表
- (2026年)海姆立克法急救培训课件
- 湖北2025年湖北科技学院招聘19人笔试历年参考题库附带答案详解
评论
0/150
提交评论