Mega Code Archive

 
Categories / Oracle PLSQL / Table
 

Use alter table to add foreign key with cascade delete

SQL> SQL> -- Use alter table to add foreign key with cascade delete SQL> SQL>     CREATE TABLE supplier   2      (      supplier_id     numeric(10)     not null,   3             supplier_name   varchar2(50)    not null,   4             contact_name    varchar2(50),   5             CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)   6      ); Table created. SQL> SQL> SQL>     CREATE TABLE products   2      (      product_id      numeric(10)     not null,   3             supplier_id     numeric(10)     not null,   4             supplier_name   varchar2(50)    not null   5      ); Table created. SQL> SQL> SQL> ALTER TABLE products   2  add CONSTRAINT fk_supplier   3    FOREIGN KEY (supplier_id)   4    REFERENCES supplier(supplier_id)   5    ON DELETE CASCADE; Table altered. SQL> SQL> SQL>     desc products;  Name                                                                                                  Null?    Type  ----------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------  PRODUCT_ID                                                                                            NOT NULL NUMBER(10)  SUPPLIER_ID                                                                                           NOT NULL NUMBER(10)  SUPPLIER_NAME                                                                                         NOT NULL VARCHAR2(50) SQL>     desc supplier;  Name                                                                                                  Null?    Type  ----------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------  SUPPLIER_ID                                                                                           NOT NULL NUMBER(10)  SUPPLIER_NAME                                                                                         NOT NULL VARCHAR2(50)  CONTACT_NAME                                                                                           VARCHAR2(50) SQL> SQL>     drop table products cascade constraints; Table dropped. SQL> SQL>     drop table supplier cascade constraints; Table dropped. SQL> SQL>