在MySQL中,外鍵是指一個(gè)表格中的一列或多列,它們的值是另外一個(gè)表格的主鍵。外鍵用于建立兩個(gè)表格之間的關(guān)系,從而保證數(shù)據(jù)的一致性和完整性。
在MySQL中,創(chuàng)建外鍵需要使用關(guān)鍵字FOREIGN KEY。在定義外鍵時(shí),必須指定外鍵列名和參考列名,如下所示:
ALTER TABLE 表格名 ADD CONSTRAINT 限制名 FOREIGN KEY (外鍵列名) REFERENCES 參考表格名 (參考列名)
其中,限制名是可選的,用于標(biāo)識(shí)該外鍵。外鍵列名是指當(dāng)前表格中的列名,參考列名是指被參考表格中的列名。通過這兩個(gè)列名建立了兩個(gè)表格之間的關(guān)系。
外鍵還可以指定級(jí)聯(lián)操作,當(dāng)被參考表格中的行被修改或刪除時(shí),當(dāng)前表格中的行也會(huì)相應(yīng)地被修改或刪除。常見的級(jí)聯(lián)操作有:
- CASCADE:級(jí)聯(lián)刪除或更新
- SET NULL:將外鍵列設(shè)置為空
- RESTRICT:禁止刪除或更新
例如,我們需要在部門表格(department)中添加外鍵,參考員工表格(employee)的主鍵id:
ALTER TABLE department ADD CONSTRAINT fk_dept_emp FOREIGN KEY (emp_id) REFERENCES employee (id) ON UPDATE CASCADE ON DELETE SET NULL;
其中,外鍵名為fk_dept_emp,當(dāng)前表格的外鍵列為emp_id,參考表格是employee表格的主鍵id列,同時(shí)指定了級(jí)聯(lián)更新和級(jí)聯(lián)刪除的操作。