天天看点

关于闪回技术对约束的影响的研究

关于闪回技术对约束的影响的研究

根据这个题目 作如下实验:

SQL> create table t1 (id number primary key,name varchar2(20));

表已创建。

SQL> insert into t1 values(1,'sales');

已创建 1 行。

SQL> insert into t1 values(2,'teach');

SQL> commit;

提交完成。

SQL> create table e (eid number primary key,ename varchar2(20),depno number references t1(id));

SQL> insert into e values (1,'KING',1);

SQL> insert into e values (2,'HARI',2);

SQL> insert into e values (1,'KING',3);

insert into e values (1,'KING',3)

*

第 1 行出现错误:

ORA-02291: 违反完整约束条件 (SCOTT.SYS_C009983) - 未找到父项关键字

SQL> COMMIT;

SQL> select * from t1;

        ID NAME                                                                

---------- --------------------                                                

         1 sales                                                               

         2 teach                                                               

SQL> select * from e;

       EID ENAME                     DEPNO                                     

---------- -------------------- ----------                                     

         1 KING                          1                                     

         2 HARI                          2                                     

SQL> conn system/yang as sysdba

已连接。

SQL> show parameter bin

NAME                                 TYPE        VALUE                         

------------------------------------ ----------- ------------------------------

recyclebin                           string      on                            

SQL> drop table scott.e;

表已删除。

SQL> select * from scott.e;

select * from scott.e

                    *

ORA-00942: 表或视图不存在

SQL> flashback table scott.e to before drop;

闪回完成。

SQL> conn scott/yang

SQL> insert into e values(2,'cott',1);

insert into e values(2,'cott',1)

ORA-00001: 违反唯一约束条件 (SCOTT.BIN$LtV86d/tTneZXApzOMr+5w==$0)

SQL> insert into e values(3,'cott',55);

由此可以得出结论:闪回表对以前建立在该表上的唯一约束没有影响,也即闪回时也闪回该表的唯一约束。但是不闪回该表的完整约束条件。

上面的答案是 D.

关于闪回技术对约束的影响的研究