1. 程式人生 > >使用NaviCat for mysql建立外來鍵的要求

使用NaviCat for mysql建立外來鍵的要求

要在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;

可以通過下面的方式在在後來新增外來鍵約束:
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}]
還可以使用 SHOW CREATE TABLE 'TABLENAME'來檢視建立語句(如果使用了工具)

navicat中使用步驟:

定位於外來鍵所在表->設計表,首先建立索引

使用navicat建立MySQL外來鍵關聯

欄位名中填入外來鍵,必須是第一列,INNODB所規定

接著建立外來鍵

使用navicat建立MySQL外來鍵關聯

 cascade表示級聯更新刪除

儲存就行了

如果有遇can't create....erron(150), 檢查一下數值型屬性有沒有定義為unsigned。