1. 程式人生 > >使用Navicat新增外來鍵

使用Navicat新增外來鍵

    CREATE TABLE parent(id INT NOT NULL,  
                         PRIMARY KEY (id)) TYPE=INNODB;  
    CREATE TABLE child(id INT, parent_id INT,  
                        INDEX par_ind (parent_id),  
                        FOREIGN KEY (parent_id) REFERENCES parent(id)  
                        ON
DELETE CASCADE ) ;
可以通過下面的方式在在後來新增外來鍵約束: ALTER TABLE yourtablename ADD [CONSTRAINT symbol] FOREIGN KEY [id] (...) REFERENCES table_name (index_col_name, ...) [ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT
}] [ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]

下面是圖解

先介紹一下基本情況。現在有兩個表一張是teacher表一張是dept表,現在我想把teacher表中的dept屬性設定為外來鍵,關聯dept表中的code屬性。具體情況如圖;好了,基本情況介紹完畢,現在開始教你們navicat for mysql 怎麼設定外來鍵。

這裡寫圖片描述

1.開啟我的navicat,然後找到我的teacher表,選中它,然後點選選單欄上的‘design table’。

這裡寫圖片描述

2.在彈出的對話方塊中找到“Foreign Keys”,然後單機。

這裡寫圖片描述

3.然後會出現一個設定外來鍵的介面,一共有七列。簡單介紹一下這幾列的意思。

‘name’:可以不填,你一會儲存成功系統會自動生成。

‘FieldName’:就是你要把哪個鍵設定為外來鍵。這裡選擇‘dept’

‘Reference DadaBase’:外來鍵關聯的資料庫。

‘Reference Table‘ :關聯的表 這裡是dept表

‘Forgin filed Names’:關聯的的欄位,這裡是code

‘ondelete’:就是刪除的時候選擇的動作。這裡我的選擇是setNull,意思就是當關聯的表刪除以後,teacher》dept欄位會設定為null。

‘onupdate’:就是更新的時候選擇的動作。這裡我的選擇是CASCADE,意思就是當關聯的表更新以後,teacher》dept欄位會設定為級聯更新。
這裡寫圖片描述

4.設定完成後點選‘save’儲存退出,也可以點選‘add Foreign Key’再新增一個外來鍵。
這裡寫圖片描述