MySQL是一種關系型數據庫管理系統,其支持在表之間建立關系。這些關系可以通過外鍵來定義和實現。在MySQL中,外鍵是一種約束,它用于限制在一個表中的某些列值必須與另一個表中的某些列值相匹配。
CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
在上面的代碼中,orders表中的customer_id列被定義為外鍵,它是來自于customers表的customer_id列的引用。
外鍵約束可以有多種行為,其中最常見的是RESTRICT、CASCADE、SET NULL和NO ACTION。
RESTRICT是最基本的行為,當嘗試刪除或更新主表中的主鍵時,會拒絕刪除或更新具有外鍵的行。CASCADE策略在刪除或更新主表主鍵時,會同時刪除或更新具有外鍵的行。SET NULL策略設置列值為NULL,使其符合外鍵約束。NO ACTION策略與RESTRICT策略類似,但是在嘗試刪除或更新主表中的主鍵時,會拋出一個錯誤。