在 mysql 中創建外鍵約束可強制子表記錄關聯主表記錄,保障數據完整性。具體步驟包括:1. 指定子表的外鍵列;2. 引用主表的唯一索引列;3. 可設置級聯刪除或更新操作(可選)。
MySQL 中創建外鍵約束
外鍵約束是一種數據庫約束,用于確保表中的數據完整性。它強制子表中的每個記錄都引用主表中的一個現有的記錄。
如何創建外鍵約束
在 MySQL 中,可以通過在創建子表時指定外鍵約束來創建外鍵約束。語法如下:
<code class="sql">CREATE TABLE child_table ( child_column INT NOT NULL, PRIMARY KEY (child_column), FOREIGN KEY (child_column) REFERENCES parent_table (parent_column) );</code>
登錄后復制
其中:
child_table
是子表名稱。
parent_table
是主表名稱。
child_column
是子表中的外鍵列。
parent_column
是主表中的引用列。
外鍵約束的含義
外鍵約束創建后,將強制執行以下規則:
子表中的每個記錄必須引用主表中的一個現有記錄。
如果主表中的被引用記錄被刪除,則子表中的引用記錄也將被刪除(級聯刪除)。
如果主表中的被引用記錄被更新,則子表中的引用記錄也將被更新(級聯更新)。
使用外鍵約束的好處
使用外鍵約束有很多好處:
確保數據完整性:外鍵約束可防止在子表中插入指向不存在記錄的外鍵值。
強制數據關聯:外鍵約束強制子表中的記錄與主表中的記錄相關聯。
簡化數據維護:外鍵約束簡化了數據的維護,因為當主表中的記錄被刪除或更新時,子表中的記錄將自動更新或刪除。
注意
主表中的列必須有唯一索引:外鍵列必須引用主表中的有唯一索引的列。
外鍵列必須在子表中存在:外鍵列必須是子表中的現有列。
級聯刪除和更新操作是可選的:可以通過指定 ON DELETE CASCADE
和 ON UPDATE CASCADE
選項來啟用級聯刪除和更新操作。