[每日一题] OCP1z0-047 :2013-08-24 FLASHBACK—TABLE/PRIMARY KEY(FOREIGN KEY?)......98
正确答案:D
根据题意如下操作:
一、创建表dept
gyj@OCM> CREATE TABLE DEPT
2 (DEPTNO NUMBER(2,0),
3 DNAME VARCHAR2(14),
4 LOC VARCHAR2(13),
5 CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO)
6 ); Table created.
二、创建表emp
gyj@OCM> CREATE TABLE EMP
2 (EMPNO NUMBER(4,0),
3 ENAME VARCHAR2(10),
4 JOB VARCHAR2(9),
5 MGR NUMBER(4,0),
6 HIREDATE DATE,
7 SAL NUMBER(7,2),
8 COMM NUMBER(7,2),
9 DEPTNO NUMBER(2,0),
10 CONSTRAINT PK_EMP PRIMARY KEY (EMPNO),
11 CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO)
12 REFERENCES DEPT (DEPTNO) ENABLE
13 ); Table created.
三、分别向表dept和表emp插入数据
gyj@OCM> insert into dept values(10,'IT',null); 1 row created. gyj@OCM> insert into dept values(20,'HR',null); 1 row created.
gyj@OCM> insert into dept(DEPTNO,DNAME) values(10,'IT'); 1 row created. gyj@OCM> insert into dept(DEPTNO,DNAME) values(20,'HR'); 1 row created. gyj@OCM> insert into emp(EMPNO,ENAME,DEPTNO) values(1,'KING',10); 1 row created. gyj@OCM> insert into emp(EMPNO,ENAME,DEPTNO) values(2,'HARI',20); 1 row created. gyj@OCM> COMMIT; Commit complete.
四、查dept和emp的数据及约束。
gyj@OCM> SELECT deptno,dname FROM dept;
DEPTNO DNAME
---------- --------------
10 IT
20 HR
gyj@OCM> SELECT EMPNO,ENAME,DEPTNO FROM emp;
EMPNO ENAME DEPTNO
---------- ---------- ----------
1 KING 10
2 HARI 20
gyj@OCM> col CONSTRAINT_NAME for a10
gyj@OCM> col R_CONSTRAINT_NAME for a10
gyj@OCM> col TABLE_NAME for a10
gyj@OCM> col INDEX_NAME for a10
gyj@OCM> select CONSTRAINT_NAME,R_CONSTRAINT_NAME,TABLE_NAME,INDEX_NAME,CONSTRAINT_TYPE,STATUS
2 from user_constraints where table_name
3 in('EMP','DEPT');
CONSTRAINT R_CONSTRAI TABLE_NAME INDEX_NAME C STATUS
---------- ---------- ---------- ---------- - --------
PK_DEPT DEPT PK_DEPT P ENABLED
PK_EMP EMP PK_EMP P ENABLED
FK_DEPTNO PK_DEPT EMP R ENABLED
五、删除表emp
gyj@OCM> drop table emp; Table dropped.
六、查回收站,可以看出表和索引同时被删除除
gyj@OCM> select OBJECT_NAME,ORIGINAL_NAME,OPERATION,TYPE ,DROPTIME from recyclebin; OBJECT_NAME ORIGINAL_N OPERATION TYPE DROPTIME
------------------------------ ---------- --------- ---------- -------------------
BIN$5LNox53pT0PgQ4rZqMD+/Q==$0 PK_EMP DROP INDEX 2013-08-24:22:33:40
BIN$5LNox53qT0PgQ4rZqMD+/Q==$0 EMP DROP TABLE 2013-08-24:22:33:40
七、并且可以查出表emp的外键也被删除了
gyj@OCM> select CONSTRAINT_NAME,R_CONSTRAINT_NAME,TABLE_NAME,INDEX_NAME,CONSTRAINT_TYPE,STATUS
2 from user_constraints where table_name
3 in('EMP','DEPT'); CONSTRAINT R_CONSTRAI TABLE_NAME INDEX_NAME C STATUS
---------- ---------- ---------- ---------- - --------
PK_DEPT DEPT PK_DEPT P ENABLED
八、闪回表emp
gyj@OCM> flashback table emp to before drop; Flashback complete.
九、查回收站,已没信息,说明表和唯一索引(主键约束)都被闪回了,但外键没有被闪回(失去了外键的制约),如下操作。
gyj@OCM> select OBJECT_NAME,ORIGINAL_NAME,OPERATION,TYPE ,DROPTIME from recyclebin;
no rows selected
gyj@OCM> SELECT EMPNO,ENAME,DEPTNO FROM emp;
EMPNO ENAME DEPTNO
---------- ---------- ----------
1 KING 10
2 HARI 20
gyj@OCM> col index_name for a50
gyj@OCM> select index_name from user_indexes where table_name='EMP';
INDEX_NAME
--------------------------------------------------
BIN$5LNox53pT0PgQ4rZqMD+/Q==$0
gyj@OCM> col CONSTRAINT_NAME for a40
gyj@OCM> col index_name for a40
gyj@OCM> select CONSTRAINT_NAME,R_CONSTRAINT_NAME,TABLE_NAME,INDEX_NAME,CONSTRAINT_TYPE,STATUS
2 from user_constraints where table_name
3 in('EMP','DEPT');
CONSTRAINT_NAME R_CONSTRAI TABLE_NAME INDEX_NAME C STATUS
---------------------------------------- ---------- ---------- ---------------------------------------- - --------
PK_DEPT DEPT PK_DEPT P ENABLED
BIN$5LNox53oT0PgQ4rZqMD+/Q==$0 EMP BIN$5LNox53pT0PgQ4rZqMD+/Q==$0 P ENABLED
十、插入两条数据,第一次插入报错(emp中已存在empno为2的员工了,empno是主键),第二次插入成功。
gyj@OCM> INSERT INTO emp(EMPNO,ENAME,DEPTNO) values(2,'COTT',10);
INSERT INTO emp(EMPNO,ENAME,DEPTNO) values(2,'COTT',10)
*
ERROR at line 1:
ORA-00001: unique constraint (GYJ.BIN$5LNox53oT0PgQ4rZqMD+/Q==$0) violated gyj@OCM> INSERT INTO emp(EMPNO,ENAME,DEPTNO) values(3,'ING',55); 1 row created. gyj@OCM> SELECT EMPNO,ENAME,DEPTNO FROM emp; EMPNO ENAME DEPTNO
---------- ---------- ----------
1 KING 10
2 HARI 20
3 ING 55
十一、闪回索引和约束的名称还是:BIN$5LNox53pT0PgQ4rZqMD+/Q==$0和BIN$5LNox53oT0PgQ4rZqMD+/Q==$0,最好修改索引和约束,如下操作:
gyj@OCM> ALTER INDEX "BIN$5LNox53pT0PgQ4rZqMD+/Q==$0" RENAME TO PK_EMP; Index altered. gyj@OCM> ALTER TABLE EMP RENAME CONSTRAINT "BIN$5LNox53oT0PgQ4rZqMD+/Q==$0" TO PK_EMP; Table altered. gyj@OCM> select CONSTRAINT_NAME,R_CONSTRAINT_NAME,TABLE_NAME,INDEX_NAME,CONSTRAINT_TYPE,STATUS
2 from user_constraints where table_name
3 in('EMP','DEPT'); CONSTRAINT_NAME R_CONSTRAI TABLE_NAME INDEX_NAME C STATUS
---------------------------------------- ---------- ---------- ---------------------------------------- - --------
PK_DEPT DEPT PK_DEPT P ENABLED
PK_EMP EMP PK_EMP P ENABLED gyj@OCM> select index_name from user_indexes where table_name='EMP'; INDEX_NAME
----------------------------------------
PK_EMP
呵呵,这样插入记录时报错就能看到正常的约束名称了。
gyj@OCM> INSERT INTO emp(EMPNO,ENAME,DEPTNO) values(2,'COTT',10);
INSERT INTO emp(EMPNO,ENAME,DEPTNO) values(2,'COTT',10)
*
ERROR at line 1:
ORA-00001: unique constraint (GYJ.PK_EMP) violated
总结:flashback table闪回表的同时也闪回了索引(此索引是建主键约束时产生的唯一索引,即也闪回了主键约束),但没有闪回外键约束。
[每日一题] OCP1z0-047 :2013-08-24 FLASHBACK—TABLE/PRIMARY KEY(FOREIGN KEY?)......98的更多相关文章
- 老男孩IT教育-每日一题汇总
老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...
- PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数
PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...
- CISP/CISA 每日一题 14
CISA 每日一题(答) 自动无人值守运行(LIGHTS-OUT)优势:1.信息系统运行成本的遏制/减少:2.持续运行(24/7):3.减少系统错误和中断次数. I/O 控制人员负责保证:1.批处理信 ...
- 【JavaScript】【dp】Leetcode每日一题-解码方法
[JavaScript]Leetcode每日一题-解码方法 [题目描述] 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -& ...
- 【python】Leetcode每日一题-最大数
[python]Leetcode每日一题-最大数 [题目描述] 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数. 注意:输出结果可能非常大,所以你需要返回一个 ...
- 每日一题20180330-Linux
一.问题 1.1 统计/var/log/下所有文件个数 1.2 查找出/var/log目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件把这些文件复制到/data目录中 1.3 ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
随机推荐
- codevs 1001 舒适的线路 kruskal/gcd
舒适的线路 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.codevs.cn/problem/1001/ Description Z小 ...
- Git_创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch * dev master $ git checkout master Switched to branch 'ma ...
- Android自己定义组件系列【3】——自己定义ViewGroup实现側滑
有关自己定义ViewGroup的文章已经非常多了,我为什么写这篇文章,对于刚開始学习的人或者对自己定义组件比較生疏的朋友尽管能够拿来主义的用了,可是要一步一步的实现和了解当中的过程和原理才干真真脱离别 ...
- Iptables 指南 1.1.19
Iptables 指南 1.1.19 Oskar Andreasson oan@frozentux.net Copyright © 2001-2003 by Oskar Andreasson 本文在符 ...
- MVC使用Gantt Chart实现甘特图,管理事情进度
借助"甘特图",可以直观地了解任务.活动.工作的进度.dhtmlxGantt是一个开源的Javacirpt库,能帮助我们快速创建"甘特图",本篇体验在MVC中的 ...
- Spring Boot1.5X升级到2.0指南
原文:https://www.jianshu.com/p/3494c84b4be3 前言 Spring Boot已经发布2.0有4个月多,多了很多新特性,一些坑也慢慢被填上,最近有空,就把本博客中Sp ...
- Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...
- E470 外放没声音问题解决
到官网下载声卡驱动.和热键驱动,安装就ok了
- strcat实现
//将源字符串加const,表明其为输入参数 char*strcat(char*strDest,constchar*strSrc) { //后文returnaddress,故不能放在assert断言之 ...
- 【六】注入框架RoboGuice使用:(Singletons And ContextSingletons)
上一篇我们简单的介绍了一下RoboGuice的使用([五]注入框架RoboGuice使用:(Your First POJO Injection)),今天我们来看下单例以及上下文单例(ContextSi ...