Oracle 外鍵創(chuàng)建

2020-09-29 16:04 更新

在Oracle數(shù)據(jù)庫中,外鍵是強(qiáng)制實(shí)施參照完整性的一種方式,使用外鍵就意味著一個(gè)表中的值在另一個(gè)表中也必須出現(xiàn)。

被引用的表稱為父表,而帶有外鍵的表稱為子表。子表中的外鍵通常會(huì)引用父表中的主鍵。

外鍵的創(chuàng)建

1、使用CREATE TABLE語句創(chuàng)建

使用CREATE TABLE語句創(chuàng)建外鍵的語法是:

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)
);

示例:

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)
);

在這個(gè)例子中,我們?cè)趕upplier表上創(chuàng)建了一個(gè)名為supplier_pk的主鍵。 它只包含一個(gè)字段 - supplier_id字段。 然后,在products表上創(chuàng)建了一個(gè)名為fk_supplier的外鍵,該表根據(jù)supplier_id字段引用supplier表。

也可以創(chuàng)建一個(gè)具有多個(gè)字段的外鍵,如下例所示:

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)
);

在這個(gè)例子中,外鍵稱為fk_foreign_comp基于兩個(gè)字段 - supplier_id和supplier_name字段引用供應(yīng)商表。

2、使用ALTER TABLE語句創(chuàng)建

在ALTER TABLE語句中創(chuàng)建外鍵的語法是:

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

示例:

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

在這個(gè)例子中,我們創(chuàng)建了一個(gè)名為fk_supplier的外鍵,它根據(jù)supplier_id字段引用supplier表的supplier_id字段。

我們也可以創(chuàng)建一個(gè)具有多個(gè)字段的外鍵,如下例所示:

ALTER TABLE products
ADD CONSTRAINT fk_supplier
  FOREIGN KEY (supplier_id, supplier_name)
  REFERENCES supplier(supplier_id, supplier_name);
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)