Oracle PL/SQL/Table/Table Reference — различия между версиями

Материал из SQL эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 09:54, 26 мая 2010

Reference a table

 
SQL>
SQL>
SQL> create table gender_tab (
  2        gender_id  char(1),
  3        gender_nm  varchar2(6),
  4        constraint gender_pk primary key ( gender_id ),
  5        constraint gender_id_ck check ( gender_id in ( "M", "F" ) )
  6  );
Table created.
SQL>
SQL> insert into gender_tab values ( "F", "Female" );
1 row created.
SQL> insert into gender_tab values ( "M", "Male" );
1 row created.
SQL>
SQL>
SQL> create table people (first_name        varchar2(20),
  2                       last_name         varchar2(25),
  3                       gender         char(1)
  4  );
Table created.
SQL>
SQL> alter table people
  2  add constraint people_gender_fk
  3  foreign key ( gender )
  4  references gender_tab;
Table altered.
SQL>
SQL> insert into people values ( "Celia", "Rice", "M" );
1 row created.
SQL> insert into people values ( "Robert", "Black", "M" );
1 row created.
SQL> insert into people values ( "Linda", "Green", "F" );
1 row created.
SQL>
SQL> drop table gender_tab;
drop table gender_tab
           *
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys

SQL>
SQL> drop table gender_tab cascade constraints;
Table dropped.
SQL>
SQL>
SQL>
SQL>



Using Inheritance Relationships

    
SQL> CREATE TABLE Person
  2      (id         VARCHAR2(10) NOT NULL,
  3       name       VARCHAR2(20),
  4       address    VARCHAR2(35),
  5       PRIMARY KEY (id));
Table created.
SQL>
SQL> CREATE TABLE emp
  2      (id         VARCHAR2(10) NOT NULL,
  3       course     VARCHAR2(10),
  4       year       VARCHAR2(4),
  5       PRIMARY KEY (id),
  6       FOREIGN KEY (id) REFERENCES Person ON DELETE CASCADE);
Table created.
SQL>
SQL>
SQL> CREATE TABLE Staff
  2      (id         VARCHAR2(10)  NOT NULL,
  3       department VARCHAR2(10),
  4       room_no    VARCHAR2(4),
  5       PRIMARY KEY (id),
  6       FOREIGN KEY (id) REFERENCES Person ON DELETE CASCADE);
SQL>
SQL>
SQL>
SQL> drop table Person;
SQL>
SQL>
SQL> drop table emp;
Table dropped.
SQL>
SQL>
SQL> drop table Staff;
SQL>
SQL>