[每日一题] 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; ...
随机推荐
- Codeforces Round #358 (Div. 2) E. Alyona and Triangles 随机化
E. Alyona and Triangles 题目连接: http://codeforces.com/contest/682/problem/E Description You are given ...
- leetcode659. Split Array into Consecutive Subsequences
leetcode659. Split Array into Consecutive Subsequences 题意: 您将获得按升序排列的整数数组(可能包含重复项),您需要将它们拆分成多个子序列,其中 ...
- Linux知识(7)----远程登录 和远程拷贝
一.远程登录 1.安装客户端 可以使用ssh(Secure Shell(缩写为SSH))来进行远程的登录.安装ssh的命令为: sudo apt-get install openssh-server ...
- mongodb exception in initAndListen: 12596 old lock file, terminating解决方法
错误信息如下: exception old lock file, terminating 解决方法 .删除data目录中的.lock文件 .mongod.exe --repair .启动mongod就 ...
- ECCV 2014 Results (16 Jun, 2014) 结果已出
Accepted Papers Title Primary Subject Area ID 3D computer vision 93 UPnP: An optimal O(n) soluti ...
- C#托管堆对象实例包含什么
每个托管堆上的对象实例除了包含本身的值外,还包括:○ Type Object Ponter: 指向Type对象实例.如果是同类型的对象实例,就指向同一个Type对象实例.○ Sync Block In ...
- SpringBoot 使用小技巧合集
原文:https://my.oschina.net/xiedeshou/blog/1926191 设置网站图标 原来我们在使用tomcat开发时,设置网站图片时,即icon图标时,一般都是直接替换ro ...
- mysql批量insert速度超慢
在进行大批量数据insert的时候,我使用的是hibernate的进行save,而数据库采用mysql.但是在save的时候,速度很慢. 刚开始以为是MYSQL进行DNS解析的问题,于 ...
- [翻译] AsyncImageView 异步下载图片
AsyncImageView https://github.com/nicklockwood/AsyncImageView AsyncImageView is a simple extension ...
- hue解决timed out(code THRIFTSOCKET):None
报错栈: Traceback (most recent call last): File , in decorator return func(*args, **kwargs) File , in e ...