成免费的crm,久久国产精品新农夫导航新妓网,恋夜秀场全部视频安卓手机,女校花强奷在线播放A级

Oracle 級聯刪除外鍵

Oracle 級聯刪除外鍵

所謂的級聯刪除是指當主表中的一條記錄被刪除,那么子表中所關聯的記錄也相應的自動刪除。本教程將教大家如何在Oracle中使用級聯刪除外鍵。

 

使用CREATE TABLE語句定義級聯刪除

以下是使用CREATE TABLE語句定義級聯刪除的語法:

CREATE TABLE table_name (   column1 datatype null/not null,   column2 datatype null/not null,   ...   CONSTRAINT fk_column      FOREIGN KEY (column1, column2, ... column_n)      REFERENCES parent_table (column1, column2, ... column_n)      ON DELETE CASCADE ); 

示例:

CREATE TABLE supplier ( supplier_id numeric(10) not null,   supplier_name varchar2(50) not null,   contact_name varchar2(50),   CONSTRAINT supplier_pk PRIMARY KEY (supplier_id) ); CREATE TABLE products ( product_id numeric(10) not null,   supplier_id numeric(10) not null,   CONSTRAINT fk_supplier     FOREIGN KEY (supplier_id)     REFERENCES supplier(supplier_id)     ON DELETE CASCADE ); 

以上示例中,我們在supplier表創建了一個名為supplier_pk的主鍵,這個主鍵只包含supplier_id字段。

然后在products表上創建了一個名為fk_supplier的外鍵,該表根據supplier_id字段引用supplier表的supplier_pk字段。

由于級聯刪除,當supplier表中的記錄被刪除時,products表中相應的所有記錄也將被刪除,因為這些記錄具有相同的supplier_id值。

此外,我們也可以創建一個具有多個字段的外鍵(帶級聯刪除),如下例所示:

CREATE TABLE supplier ( supplier_id numeric(10) not null,   supplier_name varchar2(50) not null,   contact_name varchar2(50),   CONSTRAINT supplier_pk PRIMARY KEY (supplier_id, supplier_name) ); CREATE TABLE products ( product_id numeric(10) not null,   supplier_id numeric(10) not null,   supplier_name varchar2(50) not null,   CONSTRAINT fk_supplier_comp     FOREIGN KEY (supplier_id, supplier_name)     REFERENCES supplier(supplier_id, supplier_name)     ON DELETE CASCADE ); 

在這個例子中,fk_foreign_comp外鍵基于兩個字段:supplier_id和supplier_name字段引用supplier表。

根據supplier_id和supplier_name刪除supplier表中的記錄時,外鍵fk_foreign_comp上的級聯刪除會導致products表中的所有對應記錄也會被級聯刪除。

 

使用ALTER TABLE語句定義級聯刪除

除了CREATE TABLE語句外,我們還可以用ALTER TABLE語句定義級聯刪除,具體語法如下:

ALTER TABLE table_name ADD CONSTRAINT constraint_name    FOREIGN KEY (column1, column2, ... column_n)    REFERENCES parent_table (column1, column2, ... column_n)    ON DELETE CASCADE; 

示例:

ALTER TABLE products ADD CONSTRAINT fk_supplier   FOREIGN KEY (supplier_id)   REFERENCES supplier(supplier_id)   ON DELETE CASCADE; 

在本例中,我們創建了一個名為fk_supplier的外鍵(帶級聯刪除),該外鍵基于supplier_id字段引用supplier表。

此外,我們也可以創建一個具有多個字段的外鍵(帶級聯刪除),如下例所示:

ALTER TABLE products ADD CONSTRAINT fk_supplier   FOREIGN KEY (supplier_id, supplier_name)   REFERENCES supplier(supplier_id, supplier_name)   ON DELETE CASCADE; 

下一節:Oracle 怎么刪除外鍵

Oracle教程

相關文章