使用NaviCat for mysql建立外來鍵的要求
阿新 • • 發佈:2019-01-08
要在Mysql資料庫平臺建立外來鍵關聯,必須滿足以下幾個條件:
1. 兩個表必須為 InnoDB 型別。
2. 外來鍵和被引用鍵必須是索引中的第一列,InnoDB不會自動為外來鍵和被引用鍵建立索引,必須明確建立
它們。
3. 外來鍵與對應的被引用鍵在 InnoDB 內必須有相似的內部資料型別,以便他們不需要一個型別轉換就可
以進行比較。整型欄位的長度與有符號型別必須一致。 字元型則不需要一致。如果指定了一個SET
NULL 動作,那你必須要確定子表中的對應欄位沒有定義為 NOT NULL
示例:
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 ) TYPE=INNODB;
可以通過下面的方式在在後來新增外來鍵約束:
還可以使用 SHOW CREATE TABLE 'TABLENAME'來檢視建立語句(如果使用了工具)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}]
navicat中使用步驟:
定位於外來鍵所在表->設計表,首先建立索引
欄位名中填入外來鍵,必須是第一列,INNODB所規定
接著建立外來鍵
cascade表示級聯更新刪除
儲存就行了
如果有遇can't create....erron(150), 檢查一下數值型屬性有沒有定義為unsigned。