CONSTRAINT子句允許您為外鍵約束定義約束名稱。如果省略它,MySQL將自動生成一個名稱。 FOREIGN KEY子句指定子表中引用父表中主鍵列的列。您可以在FOREIGN KEY子句后放置一個外鍵名稱,或者讓MySQL為您創建一個名稱。 請注意,MySQL會自動創建一個具有foreign_key_name名稱的索引。 REFERENCES子句指定父表及其子表中列的引用。 在FOREIGN KEY和REFERENCES中指定的子表和父表中的列數必須相同。 ON DELETE子句允許定義當父表中的記錄被刪除時,子表的記錄怎樣執行操作。如果省略ON DELETE子句并刪除父表中的記錄,則MySQL將拒絕刪除子表中相關聯的數據。此外,MySQL還提供了一些操作,以便您可以使用其他選項,例如ON DELETE CASCADE,當刪除父表中的記錄時,MySQL可以刪除子表中引用父表中記錄的記錄。 如果您不希望刪除子表中的相關記錄,請改用ON DELETE SET NULL操作。當父表中的記錄被刪除時,MySQL會將子表中的外鍵列值設置為NULL,條件是子表中的外鍵列必須接受NULL值。 請注意,如果使用ON DELETE NO ACTION或ON DELETE RESTRICT操作,MySQL將拒絕刪除。 ON UPDATE子句允許指定在父表中的行更新時,子表中的行會怎樣執行操作。當父表中的行被更新時,可以省略ON UPDATE子句讓MySQL拒絕對子表中的行的任何更新。 ON UPDATE CASCADE操作允許您執行交叉表更新,并且當更新父表中的行時,ON UPDATE SET NULL操作會將子表中行中的值重置為NULL值。 ON UPDATE NO ACTION或UPDATE RESTRICT操作拒絕任何更新。