在MySQL中,建表時設(shè)置外鍵可以幫助我們建立表與表之間的關(guān)聯(lián)關(guān)系,從而方便我們進行數(shù)據(jù)查詢和維護。設(shè)置外鍵時需要注意以下幾點:
1.定義外鍵的表和字段必須已經(jīng)存在,否則會出現(xiàn)錯誤。
CREATE TABLE department ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE employee ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), department_id INT, FOREIGN KEY (department_id) REFERENCES department(id) );
2.在定義外鍵的表中,設(shè)置外鍵字段時必須指定其所屬的表和字段,格式為“FOREIGN KEY (外鍵字段名) REFERENCES 外鍵所屬表(主鍵字段名)”。
CREATE TABLE category ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE product ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), category_id INT, FOREIGN KEY (category_id) REFERENCES category(id) );
3.一張表可以有多個外鍵,但是在同一個表中,外鍵字段名不能重名。
CREATE TABLE order ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, product_id INT, customer_id INT, FOREIGN KEY (product_id) REFERENCES product(id), FOREIGN KEY (customer_id) REFERENCES customer(id) );
在MySQL中,設(shè)置外鍵的語法有些繁瑣,但是在日常的數(shù)據(jù)庫管理工作中,它卻是非常重要的一個功能,建議我們在建表時會用到外鍵的數(shù)據(jù)表中,都應(yīng)該加上外鍵約束。