下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 11148-2025石油沥青溶解度测定法
- 虚拟空间交互优化-洞察与解读
- 环保设备环境影响评价案例分析考试试题及答案
- 控制焦虑情绪的有效方法-心理学家
- 艾滋病原理介绍
- 创意设计手工首饰
- 河南省公务员考试真题及答案2025年
- 结构件加工方法
- 给客户介绍公司
- 2025年零售药店员工培训计划试题(附答案)
- 2025江苏南通市通州区石港镇招聘便民服务中心人员2人笔试考试参考题库及答案解析
- 2025入党积极分子预备党员考试题库及答案(5份)
- 2025四川成都空港兴城投资集团有限公司下属企业招聘一线岗位104人考试参考题库及答案解析
- 学堂在线 高技术与现代局部战争 章节测试答案
- (正式版)QBT 8006-2024 年糕 标准
- 中国地质大学地球科学概论教学课程pptpart5公开课获奖课件
- 糖尿病与肥胖
- GA 1016-2012枪支(弹药)库室风险等级划分与安全防范要求
- 2023年上海技术交易所有限公司招聘笔试模拟试题及答案解析
- 英语学习水循环课件
- 《第三方物流(第4版)》教学大纲
评论
0/150
提交评论