Mysql外鍵是一個重要的數據庫概念,它定義了兩個表之間的關聯關系。如果您需要一個表的列在另一個表中作為主鍵(或唯一鍵),那么您就需要使用外鍵約束來定義這個關系。以下是mysql 外鍵語法的詳細說明。
ALTER TABLE '表名' ADD [CONSTRAINT '外鍵名稱'] FOREIGN KEY ('列名') REFERENCES '參考表名' ('參考列名') [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}];
上述語法解釋如下:
ALTER TABLE '表名'
:操作的表名。ADD CONSTRAINT '外鍵名稱'
:外鍵名稱,如果不指定將自動生成一個名稱。FOREIGN KEY ('列名')
:表的列名,需要作為外鍵的列名。REFERENCES '參考表名' ('參考列名')
:指定外鍵必須參考的表和列名。ON DELETE
:刪除引用表中行時的操作選項。ON UPDATE
:更新引用表中行時的操作選項。
以下是對ON DELETE和ON UPDATE選項的詳細解釋:
RESTRICT
:如果父表有主鍵或唯一鍵,則不允許刪除或更新父表中的記錄。CASCADE
:如果父表的行被刪除或更新,則刪除或更新所有依賴于父表的子表的記錄。SET NULL
:如果父表的某行被刪除或更新,則將子表中的相應列設置為NULL。NO ACTION
:與RESTRICT相同,這是默認值。
最后,我們需要注意以下幾點:
- 創建外鍵之前,需要先創建引用表的主鍵(或唯一鍵)。
- 創建外鍵的列必須有相同的數據類型和長度。
- 在使用外鍵時,應該考慮它們是否對查詢和性能產生負面影響。