什么是外鍵?
外鍵(Foreign Key)是一種關系約束,它指定一個表中的一列(或多列)值必須符合另一個表中的一個主鍵或唯一鍵的值。外鍵有助于確保數據之間的完整性和一致性,它可以防止無效或冗余數據的插入或更改。MySQL支持外鍵約束,但是默認情況下不啟用這個功能,如果需要使用外鍵,則需要手動啟用它。
啟用外鍵約束
mysql>ALTER TABLE table_name ->ADD CONSTRAINT constraint_name ->FOREIGN KEY (column1, column2, ...) ->REFERENCES ref_table(ref_column1, ref_column2, ...) ->[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}] ->[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}];
上面的代碼中,table_name 指定了需要添加外鍵約束的表,column1, column2, ... 指定了需要約束的列,ref_table 指定了本表需要參考的外部表,ref_column1, ref_column2, ... 指定了外部表中需要匹配的列。constraint_name 是一個可選的約束名稱,如果不指定,默認會自動生成一個名稱。ON DELETE 和 ON UPDATE 用于指定在父表中刪除或更新記錄時,子表中應該采取哪些操作。
刪除外鍵約束
mysql>ALTER TABLE table_name ->DROP FOREIGN KEY constraint_name;
上面的代碼中,table_name 指定了需要刪除外鍵約束的表,constraint_name 指定了需要刪除的約束名稱。
檢查外鍵約束
mysql>SHOW CREATE TABLE table_name;
上面的代碼會顯示一個表的定義,包括所有的列、約束和索引。如果這個表有外鍵約束,那么可以通過查看定義來驗證它們是否正確。