Вы находитесь на странице: 1из 10

SQL> cl scr SQL> 2 3 4 5 6 7 CREATE TABLE SamplePK01 ( SampID NUMBER(2) CONSTRAINT SamplePK01_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate

DATE );

Table created. SQL> 2 3 4 5 6 7 8 9 10 CREATE TABLE SampleFK01 ( SampID NUMBER(2) CONSTRAINT SampleFK01_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE, SampIDFK NUMBER(2) CONSTRAINT SampleFK01_SampIDFK REFERENCES SamplePK01(SampID) );

Table created. SQL> INSERT INTO SampleFK01 2 VALUES(1, 'SAMPLE01', SYSDATE, NULL); 1 row created. SQL> INSERT INTO SampleFK01 2 VALUES(2, 'SAMPLE02', SYSDATE, 10); INSERT INTO SampleFK01 * ERROR at line 1: ORA-02291: integrity constraint (SCOTT.SAMPLEFK01_SAMPIDFK) violated - parent key not found SQL> INSERT INTO SamplePK01 2 VALUES(10, 'SAMPLE10', SYSDATE); 1 row created. SQL> INSERT INTO SamplePK01 2 VALUES(11, 'SAMPLE11', SYSDATE); 1 row created. SQL> INSERT INTO SamplePK01 2 VALUES(12, 'SAMPLE12', SYSDATE); 1 row created. SQL> INSERT INTO SamplePK01 2 VALUES(13, 'SAMPLE13', SYSDATE); 1 row created. SQL> SELECT * FROm SamplePK01;

SAMPID ---------10 11 12 13

SAMPNAME ---------SAMPLE10 SAMPLE11 SAMPLE12 SAMPLE13

SAMPDATE --------22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09

SQL> INSERT INTO SampleFK01 2 VALUES(2, 'SAMPLE02', SYSDATE, 10); 1 row created. SQL> INSERT INTO SampleFK01 2 VALUES(3, 'SAMPLE03', SYSDATE, 10); 1 row created. SQL> INSERT INTO SampleFK01 2 VALUES(4, 'SAMPLE04', SYSDATE, 10); 1 row created. SQL> INSERT INTO SampleFK01 2 VALUES(5, 'SAMPLE05', SYSDATE, 12); 1 row created. SQL> DELETE FROM SamplePK01 2 WHERE SampID = 13; 1 row deleted. SQL> DELETE FROM SamplePK01 2 WHERE SampID = 12; DELETE FROM SamplePK01 * ERROR at line 1: ORA-02292: integrity constraint (SCOTT.SAMPLEFK01_SAMPIDFK) violated - child record found SQL> DELETE FROM SamplePK01 2 WHERE SampID = 10; DELETE FROM SamplePK01 * ERROR at line 1: ORA-02292: integrity constraint (SCOTT.SAMPLEFK01_SAMPIDFK) violated - child record found SQL> ed Wrote file afiedt.buf 1 CREATE TABLE SampleFK02 2 ( 3 SampID NUMBER(2) 4 CONSTRAINT SampleFK02_SampID PRIMARY KEY, 5 SampName VARCHAR2(10), 6 SampDate DATE,

7 8 9 10 11* SQL>

SampIDFK NUMBER(2) CONSTRAINT SampleFK02_SampIDFK_NN NOT NULL CONSTRAINT SampleFK02_SampIDFK REFERENCES SamplePK01(SampID) ) /

Table created. SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK02 2* VALUES(1, 'SAMPLE01', SYSDATE, NULL) SQL> / VALUES(1, 'SAMPLE01', SYSDATE, NULL) * ERROR at line 2: ORA-01400: cannot insert NULL into ("SCOTT"."SAMPLEFK02"."SAMPIDFK") SQL> INSERT INTO SampleFK02 2 VALUES(1, 'SAMPLE01', SYSDATE, 10); 1 row created. SQL> INSERT INTO SampleFK02 2 VALUES(2, 'SAMPLE02', SYSDATE, 13); INSERT INTO SampleFK02 * ERROR at line 1: ORA-02291: integrity constraint (SCOTT.SAMPLEFK02_SAMPIDFK) violated - parent key not found SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK02 2* VALUES(2, 'SAMPLE02', SYSDATE, 11) SQL> / 1 row created. SQL> INSERT INTO SampleFK02 2 VALUES(3, 'SAMPLE03', SYSDATE, 11); 1 row created. SQL> ed Wrote file afiedt.buf 1 CREATE TABLE SampleFK03 2 ( 3 SampID NUMBER(2) 4 CONSTRAINT SampleFK03_SampID PRIMARY KEY, 5 SampName VARCHAR2(10), 6 SampDate DATE, 7 SampIDFK NUMBER(2) 8 CONSTRAINT SampleFK03_SampIDFK_UNQ UNIQUE

9 10 11* SQL>

CONSTRAINT SampleFK03_SampIDFK REFERENCES SamplePK01(SampID) ) /

Table created. SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK03 2* VALUES(1, 'SAMPLE01', SYSDATE, 11) SQL> / 1 row created. SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK03 2* VALUES(2, 'SAMPLE02', SYSDATE, NULL) SQL> / 1 row created. SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK03 2* VALUES(3, 'SAMPLE03', SYSDATE, 11) SQL> / INSERT INTO SampleFK03 * ERROR at line 1: ORA-00001: unique constraint (SCOTT.SAMPLEFK03_SAMPIDFK_UNQ) violated SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8 9 10 11 12* SQL> CREATE TABLE SampleFK04 ( SampID NUMBER(2) CONSTRAINT SampleFK04_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE, SampIDFK NUMBER(2) CONSTRAINT SampleFK04_SampIDFK_NN NOT NULL CONSTRAINT SampleFK04_SampIDFK_UNQ UNIQUE CONSTRAINT SampleFK04_SampIDFK REFERENCES SamplePK01(SampID) ) /

Table created. SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK04

2* VALUES(1, 'SAMPLE01', SYSDATE, 11) SQL> / 1 row created. SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK04 2* VALUES(2, 'SAMPLE02', SYSDATE, NULL) SQL> / VALUES(2, 'SAMPLE02', SYSDATE, NULL) * ERROR at line 2: ORA-01400: cannot insert NULL into ("SCOTT"."SAMPLEFK04"."SAMPIDFK") SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK04 2* VALUES(3, 'SAMPLE03', SYSDATE, 11) SQL> / INSERT INTO SampleFK04 * ERROR at line 1: ORA-00001: unique constraint (SCOTT.SAMPLEFK04_SAMPIDFK_UNQ) violated SQL> ed Wrote file afiedt.buf 1 INSERT INTO SampleFK04 2* VALUES(3, 'SAMPLE03', SYSDATE, 13) SQL> / INSERT INTO SampleFK04 * ERROR at line 1: ORA-02291: integrity constraint (SCOTT.SAMPLEFK04_SAMPIDFK) violated - parent key not found SQL> CREATE TABLE SamplePK01 2 ( 3 SampID NUMBER(2) 4 CONSTRAINT SamplePK01_SampID PRIMARY KEY, 5 SampName VARCHAR2(10), 6 SampDate DATE 7 ) 8 SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7* CREATE TABLE SamplePK02 ( SampID NUMBER(2) CONSTRAINT SamplePK02_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE )

SQL> / Table created. SQL> cl scr SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8 9 10 11* SQL> CREATE TABLE SampleFK01_02 ( SampID NUMBER(2) CONSTRAINT SampleFK01_02_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE, SampIDFK NUMBER(2) CONSTRAINT SampleFK01_02_SampIDFK REFERENCES SamplePK02(SampID) ON DELETE CASCADE ) /

Table created. SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8 9 10 11* SQL> CREATE TABLE SampleFK02_02 ( SampID NUMBER(2) CONSTRAINT SampleFK02_02_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE, SampIDFK NUMBER(2) CONSTRAINT SampleFK02_02_SampIDFK REFERENCES SamplePK02(SampID) ON DELETE SET NULL ) /

Table created. SQL> INSERT INTO SamplePK02 2 VALUES(20, 'SAMPLE20', SYSDATE); 1 row created. SQL> INSERT INTO SamplePK02 2 VALUES(21, 'SAMPLE21', SYSDATE); 1 row created. SQL> INSERT INTO SamplePK02 2 VALUES(22, 'SAMPLE22', SYSDATE); 1 row created. SQL> INSERT INTO SamplePK02 2 VALUES(23, 'SAMPLE23', SYSDATE);

1 row created. SQL> INSERT INTO SamplePK02 2 VALUES(24, 'SAMPLE24', SYSDATE); 1 row created. SQL> SELECT * FROM SamplePK02; SAMPID ---------20 21 22 23 24 SAMPNAME ---------SAMPLE20 SAMPLE21 SAMPLE22 SAMPLE23 SAMPLE24 SAMPDATE --------22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09

SQL> INSERT INTO SampleFK01_02 2 VALUES(1, 'SAMPLE01', SYSDATE, 20); 1 row created. SQL> INSERT INTO SampleFK01_02 2 VALUES(2, 'SAMPLE02', SYSDATE, 20); 1 row created. SQL> INSERT INTO SampleFK01_02 2 VALUES(3, 'SAMPLE03', SYSDATE, 23); 1 row created. SQL> INSERT INTO SampleFK01_02 2 VALUES(4, 'SAMPLE04', SYSDATE, 23); 1 row created. SQL> INSERT INTO SampleFK01_02 2 VALUES(5, 'SAMPLE05', SYSDATE, 22); 1 row created. SQL> INSERT INTO SampleFK01_02 2 VALUES(6, 'SAMPLE06', SYSDATE, 22); 1 row created. SQL> SELECT * FROM SampleFK01_02; SAMPID ---------1 2 3 4 5 6 SAMPNAME ---------SAMPLE01 SAMPLE02 SAMPLE03 SAMPLE04 SAMPLE05 SAMPLE06 SAMPDATE SAMPIDFK --------- ---------22-JUN-09 20 22-JUN-09 20 22-JUN-09 23 22-JUN-09 23 22-JUN-09 22 22-JUN-09 22

6 rows selected.

SQL> INSERT INTO SampleFK02_02 2 VALUES(1, 'SAMPLE01', SYSDATE, 20); 1 row created. SQL> INSERT INTO SampleFK02_02 2 VALUES(2, 'SAMPLE02', SYSDATE, 20); 1 row created. SQL> INSERT INTO SampleFK02_02 2 VALUES(3, 'SAMPLE03', SYSDATE, 20); 1 row created. SQL> INSERT INTO SampleFK02_02 2 VALUES(4, 'SAMPLE04', SYSDATE, 21); 1 row created. SQL> INSERT INTO SampleFK02_02 2 VALUES(5, 'SAMPLE05', SYSDATE, 21); 1 row created. SQL> INSERT INTO SampleFK02_02 2 VALUES(6, 'SAMPLE06', SYSDATE, 21); 1 row created. SQL> cl scr SQL> SELECT * FROM SampleFK01_02; SAMPID ---------1 2 3 4 5 6 SAMPNAME ---------SAMPLE01 SAMPLE02 SAMPLE03 SAMPLE04 SAMPLE05 SAMPLE06 SAMPDATE SAMPIDFK --------- ---------22-JUN-09 20 22-JUN-09 20 22-JUN-09 23 22-JUN-09 23 22-JUN-09 22 22-JUN-09 22

6 rows selected. SQL> SELECT * FROM SampleFK02_02; SAMPID ---------1 2 3 4 5 6 SAMPNAME ---------SAMPLE01 SAMPLE02 SAMPLE03 SAMPLE04 SAMPLE05 SAMPLE06 SAMPDATE SAMPIDFK --------- ---------22-JUN-09 20 22-JUN-09 20 22-JUN-09 20 22-JUN-09 21 22-JUN-09 21 22-JUN-09 21

6 rows selected. SQL> SELECT * FROM SamplePK02_01; SELECT * FROM SamplePK02_01

* ERROR at line 1: ORA-00942: table or view does not exist SQL> SELECT * FROM SamplePK02; SAMPID ---------20 21 22 23 24 SAMPNAME ---------SAMPLE20 SAMPLE21 SAMPLE22 SAMPLE23 SAMPLE24 SAMPDATE --------22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09

SQL> DELETE FROM SamplePK02 2 WHERE SampID = 24; 1 row deleted. SQL> DELETE FROM SamplePK02 2 WHERE SampID = 21; 1 row deleted. SQL> SELECT * FROM SampleFK02_02; SAMPID ---------1 2 3 4 5 6 SAMPNAME ---------SAMPLE01 SAMPLE02 SAMPLE03 SAMPLE04 SAMPLE05 SAMPLE06 SAMPDATE SAMPIDFK --------- ---------22-JUN-09 20 22-JUN-09 20 22-JUN-09 20 22-JUN-09 22-JUN-09 22-JUN-09

6 rows selected. SQL> DELETE FROM SamplePK02 2 WHERE SampID = 23; 1 row deleted. SQL> SELECT * FROM SampleFK01_02; SAMPID ---------1 2 5 6 SAMPNAME ---------SAMPLE01 SAMPLE02 SAMPLE05 SAMPLE06 SAMPDATE SAMPIDFK --------- ---------22-JUN-09 20 22-JUN-09 20 22-JUN-09 22 22-JUN-09 22

SQL> DELETE FROM SamplePK02 2 WHERE SampID = 20; 1 row deleted. SQL> SELECT * FROM SampleFK01_02; SAMPID SAMPNAME SAMPDATE SAMPIDFK

---------- ---------- --------- ---------5 SAMPLE05 22-JUN-09 22 6 SAMPLE06 22-JUN-09 22 SQL> SELECT * FROM SampleFK02_02; SAMPID ---------1 2 3 4 5 6 SAMPNAME ---------SAMPLE01 SAMPLE02 SAMPLE03 SAMPLE04 SAMPLE05 SAMPLE06 SAMPDATE SAMPIDFK --------- ---------22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09 22-JUN-09

6 rows selected. SQL> cl scr SQL> 2 3 4 5 6 7 CREATE TABLE SamplePK03SELF ( SampID NUMBER(2) CONSTRAINT SamplePK03SELF_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE );

Table created. SQL> DROP TABLE SamplePK03SELF; Table dropped. SQL> ed Wrote file afiedt.buf 1 2 3 4 5 6 7 8 9 10* SQL> CREATE TABLE SamplePK03SELF ( SampID NUMBER(2) CONSTRAINT SamplePK03SELF_SampID PRIMARY KEY, SampName VARCHAR2(10), SampDate DATE, SampIDFK NUMBER(2) CONSTRAINT SamplePK03SELF_SampIDFK REFERENCES SamplePK03SELF(SampID) ) /

Table created. SQL> SPOOL OFF

Вам также может понравиться