<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FTable%2FFOREIGN_KEY</id>
		<title>Oracle PL/SQL Tutorial/Table/FOREIGN KEY - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FTable%2FFOREIGN_KEY"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table/FOREIGN_KEY&amp;action=history"/>
		<updated>2026-05-24T14:53:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table/FOREIGN_KEY&amp;diff=3090&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table/FOREIGN_KEY&amp;diff=3090&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table/FOREIGN_KEY&amp;diff=3091&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Table/FOREIGN_KEY&amp;diff=3091&amp;oldid=prev"/>
				<updated>2010-05-26T10:05:03Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Add constraint foreign key references==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table parts&lt;br /&gt;
  2  (part_no   number primary key,&lt;br /&gt;
  3   part_name varchar2(20),&lt;br /&gt;
  4   parent number);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (4, &amp;quot;part1&amp;quot; , 3)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (5, &amp;quot;part2&amp;quot; , 3)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (6, &amp;quot;part3&amp;quot; , 3)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (7, &amp;quot;part4&amp;quot; , 6)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (10, &amp;quot;part5&amp;quot; , null)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (2, &amp;quot;part6&amp;quot; , 10)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into parts&lt;br /&gt;
  2  values (3, &amp;quot;part7&amp;quot; , 10)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table parts&lt;br /&gt;
  2  add constraint fk_parent foreign key (parent) references parts;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table parts;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Adding a FOREIGN KEY Constraint==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Customer(&lt;br /&gt;
  2    id         NUMBER(3) primary key,&lt;br /&gt;
  3    NAME       VARCHAR2(15 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table account (&lt;br /&gt;
  2    id         NUMBER(3),&lt;br /&gt;
  3    type       VARCHAR2(20 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ALTER TABLE account&lt;br /&gt;
  2  ADD CONSTRAINT fk&lt;br /&gt;
  3  customerid REFERENCES customer(id);&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table  account;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table customer;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== A foreign key to reference itself==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employees&lt;br /&gt;
  2  ( empno      NUMBER(4)    constraint E_PK&lt;br /&gt;
  3                            primary key&lt;br /&gt;
  4                            constraint E_EMPNO_CHK&lt;br /&gt;
  5                            check (empno &amp;gt; 7000)&lt;br /&gt;
  6  , mgr        NUMBER(4)    constraint E_MGR_FK&lt;br /&gt;
  7                            references employees) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Disable foreign key==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table it&lt;br /&gt;
  2   (c1 number primary key,&lt;br /&gt;
  3    c2 number,&lt;br /&gt;
  4    c3 number);&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; alter table it add constraint it_fk foreign key (c2) references emp disable;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select object_name as name, object_id&lt;br /&gt;
  2  from user_objects&lt;br /&gt;
  3  where object_name in (&amp;quot;T&amp;quot;, &amp;quot;IT&amp;quot;);&lt;br /&gt;
IT                                                                                                                            14971&lt;br /&gt;
1 row selected.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Many to many using a primary-key and foreign-key relationship==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE Course&lt;br /&gt;
  2     (course_id        VARCHAR2(10) NOT NULL,&lt;br /&gt;
  3      course_name      VARCHAR2(20),&lt;br /&gt;
  4      PRIMARY KEY (course_id));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE emp&lt;br /&gt;
  2     (stud_id    VARCHAR2(10) NOT NULL,&lt;br /&gt;
  3      stud_name  VARCHAR2(20),&lt;br /&gt;
  4      PRIMARY KEY (stud_id));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE Enrolls_in&lt;br /&gt;
  2     (course_id  VARCHAR2(10) NOT NULL,&lt;br /&gt;
  3      stud_id    VARCHAR2(10) NOT NULL,&lt;br /&gt;
  4      PRIMARY KEY (course_id, stud_id),&lt;br /&gt;
  5      FOREIGN KEY (course_id) REFERENCES Course (course_id)&lt;br /&gt;
  6      ON DELETE CASCADE,&lt;br /&gt;
  7      FOREIGN KEY (stud_id) REFERENCES emp (stud_id)&lt;br /&gt;
  8      ON DELETE CASCADE);&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table Course cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table emp cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table Enrolls_in;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== ON DELETE CASCADE clause with a FOREIGN KEY constraint==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;ON DELETE CASCADE clause with a FOREIGN KEY constraint specifies that when a row in the parent table is deleted, any matching rows in the child table are also deleted.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Customer(&lt;br /&gt;
  2    id         NUMBER(3) primary key,&lt;br /&gt;
  3    NAME       VARCHAR2(15 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table account (&lt;br /&gt;
  2    id         NUMBER(3),&lt;br /&gt;
  3    type       VARCHAR2(20 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ALTER TABLE account&lt;br /&gt;
  2  ADD CONSTRAINT fk&lt;br /&gt;
  3  customerid REFERENCES customer(id) ON DELETE CASCADE;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table  account;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table customer;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== ORA-02270: no matching unique or primary key for this column-list==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee (&lt;br /&gt;
  2  id                             number,&lt;br /&gt;
  3  name                           varchar(100),&lt;br /&gt;
  4  birth_date                     date,&lt;br /&gt;
  5  gender                         varchar2(30) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employee_evaluation (&lt;br /&gt;
  2  id                             number,&lt;br /&gt;
  3  title                          varchar2(100),&lt;br /&gt;
  4  written_date                   date );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ALTER TABLE employee_evaluation ADD&lt;br /&gt;
  2  CONSTRAINT  employee_evaluation_fk1&lt;br /&gt;
  3  FOREIGN KEY        (id)&lt;br /&gt;
  4  REFERENCES  employee (id);&lt;br /&gt;
REFERENCES  employee (id)&lt;br /&gt;
                      *&lt;br /&gt;
ERROR at line 4:&lt;br /&gt;
ORA-02270: no matching unique or primary key for this column-list&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee cascade constraint;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee_evaluation cascade constraint;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== ORA-02298: cannot validate (JAVA2S.PRODUCT_ORDER_FK_PRODUCT) - parent keys not found==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE product (&lt;br /&gt;
  2       product_name     VARCHAR2(25) PRIMARY KEY,&lt;br /&gt;
  3       product_price    NUMBER(4,2),&lt;br /&gt;
  4       quantity_on_hand NUMBER(5,0),&lt;br /&gt;
  5       last_stock_date  DATE&lt;br /&gt;
  6       );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE product_order (&lt;br /&gt;
  2       product_name  VARCHAR2(25),&lt;br /&gt;
  3       salesperson   VARCHAR2(3),&lt;br /&gt;
  4       order_date DATE,&lt;br /&gt;
  5       quantity      NUMBER(4,2)&lt;br /&gt;
  6       );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 1&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;14-JUL-03&amp;quot;, 1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 2&amp;quot;, &amp;quot;BB&amp;quot;, &amp;quot;14-JUL-03&amp;quot;, 75);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 3&amp;quot;, &amp;quot;GA&amp;quot;, &amp;quot;14-JUL-03&amp;quot;, 2);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 4&amp;quot;, &amp;quot;GA&amp;quot;, &amp;quot;15-JUL-03&amp;quot;, 8);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 5&amp;quot;, &amp;quot;LB&amp;quot;, &amp;quot;15-JUL-03&amp;quot;, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 6&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;16-JUL-03&amp;quot;, 5);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product_order VALUES (&amp;quot;Product 7&amp;quot;, &amp;quot;CA&amp;quot;, &amp;quot;17-JUL-03&amp;quot;, 1);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO product VALUES (&amp;quot;Product 1&amp;quot;, 99,  1,    &amp;quot;15-JAN-03&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product VALUES (&amp;quot;Product 2&amp;quot;, 75,  1000, &amp;quot;15-JAN-02&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product VALUES (&amp;quot;Product 3&amp;quot;, 50,  100,  &amp;quot;15-JAN-03&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product VALUES (&amp;quot;Product 4&amp;quot;, 25,  10000, null);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product VALUES (&amp;quot;Product 5&amp;quot;, 9.95,1234, &amp;quot;15-JAN-04&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO product VALUES (&amp;quot;Product 6&amp;quot;, 45,  1,    TO_DATE(&amp;quot;December 31, 2008, 11:30 P.M.&amp;quot;,&amp;quot;Month dd, YYYY, HH:MI P.M.&amp;quot;));&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ALTER TABLE product_order&lt;br /&gt;
  2       ADD CONSTRAINT product_order_fk_product FOREIGN KEY&lt;br /&gt;
  3       (product_name) REFERENCES product;&lt;br /&gt;
     ADD CONSTRAINT product_order_fk_product FOREIGN KEY&lt;br /&gt;
                    *&lt;br /&gt;
ERROR at line 2:&lt;br /&gt;
ORA-02298: cannot validate (sqle.PRODUCT_ORDER_FK_PRODUCT) - parent keys not found&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table product;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table product_order;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use the ON DELETE SET NULL clause with a FOREIGN KEY constraint==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Specify that when a row in the parent table is deleted, &lt;br /&gt;
the foreign key column for the row (or rows) in the child table is set to null.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Customer(&lt;br /&gt;
  2    id         NUMBER(3) primary key,&lt;br /&gt;
  3    NAME       VARCHAR2(15 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table account (&lt;br /&gt;
  2    id         NUMBER(3),&lt;br /&gt;
  3    type       VARCHAR2(20 BYTE)&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; ALTER TABLE account&lt;br /&gt;
  2  ADD CONSTRAINT fk&lt;br /&gt;
  3  customerid REFERENCES customer(id) ON DELETE SET NULL;&lt;br /&gt;
Table altered.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table  account;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table customer;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Violate a foreign key==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table p ( pk  int primary key )&lt;br /&gt;
  2  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; create table c&lt;br /&gt;
  2  ( fk  constraint c_fk&lt;br /&gt;
  3        references p(pk)&lt;br /&gt;
  4        deferrable&lt;br /&gt;
  5        initially immediate&lt;br /&gt;
  6  )&lt;br /&gt;
  7  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into p values ( 1 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into c values ( 1 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update p set pk = 2;&lt;br /&gt;
update p set pk = 2&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-02292: integrity constraint (sqle.C_FK) violated - child record found&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set constraint c_fk deferred;&lt;br /&gt;
Constraint set.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update p set pk = 2;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set constraint c_fk immediate;&lt;br /&gt;
set constraint c_fk immediate&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-02291: integrity constraint (sqle.C_FK) violated - parent key not found&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; update c set fk = 2;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set constraint c_fk immediate;&lt;br /&gt;
Constraint set.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table p;&lt;br /&gt;
drop table p&lt;br /&gt;
           *&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-02449: unique/primary keys in table referenced by foreign keys&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; drop table c;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>