MySQL中,外鍵是建立在兩個表之間的關系。在一個表中創建一個外鍵,它會引用另外一個表中一個存在的主鍵。
下面是一個示例,假設已經有兩個表,一個表是“students”,另一個表是“scores”。在“students”表中,主鍵是“id”,在“scores”表中,外鍵是“student_id”。
CREATE TABLE students ( id INT NOT NULL PRIMARY KEY, name VARCHAR(50), age INT ); CREATE TABLE scores ( id INT NOT NULL PRIMARY KEY, student_id INT, subject VARCHAR(50), score FLOAT, FOREIGN KEY (student_id) REFERENCES students(id) );
這個示例中,“scores”表中“student_id”列是外鍵,因為它指向“students”表中“id”列。 FOREIGN KEY關鍵字表示“student_id”在作為外鍵時,必須存在于“students”表中的“id”列中。
外鍵的作用是,它可以提高表的數據完整性。如果沒有外鍵,表可能會包含錯誤或者無效的數據。因為有了外鍵,當我們在“scores”表中插入一個學生的分數時,MySQL會檢查外鍵是否存在于“students”表中。如果指向一個不存在的行,MySQL將拒絕插入操作并且報錯。
在使用外鍵時需要注意一點,就是外鍵的列應該和主鍵列的數據類型匹配。在前面的示例中,“students”表中的“id”列是INT類型,因此“scores”表中“student_id”列也必須是INT類型。如果兩個列的數據類型不匹配,MySQL將不允許創建外鍵。