首頁  >  文章  >  資料庫  >  Navicat for MySQL怎麼建立多錶鏈接

Navicat for MySQL怎麼建立多錶鏈接

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-08-05 09:28:4612211瀏覽

Navicat for MySQL怎麼建立多錶鏈接

建立兩個資料表的多對多關係:清洗資料表(clean_data表)與使用者表(user表)建立多對多的關係。如下圖所示:

Navicat for MySQL怎麼建立多錶鏈接

#1.建立表格

#.開啟navicat,建立三張表,clean_data表與user表,以及兩個表之間的關係表(clean_data_user表)。

表格結構分別如下: 

Navicat for MySQL怎麼建立多錶鏈接

Navicat for MySQL怎麼建立多錶鏈接

Navicat for MySQL怎麼建立多錶鏈接

相關推薦:《Navicat for mysql使用圖文教學

2.建立外鍵 

2.1先設定clean_data_user表中將要關聯的cln_dt_id和user_id兩個字段為主鍵。如下圖所示:

Navicat for MySQL怎麼建立多錶鏈接

2.2點選外鍵按鈕,建立外鍵關係。根據欄位的命名可想而知,cln_dt_id會與clean_data表中的id建立關聯,user_id與user表中的id關聯。如下圖: 

Navicat for MySQL怎麼建立多錶鏈接

注意事項: 

1.資料庫表多對多建立關係時,請務必先建立主鍵。如果不先建立外鍵,會出現1215的錯誤,如下圖圖6所示。在這個問題上浪費了近兩個小時。實在不該啊。 

** 

後面才發現,沒必要建主鍵啊,為cln_td_id和user_id建立索引即可!

**

Navicat for MySQL怎麼建立多錶鏈接

那麼,我們來整理出現1215錯誤的原因:

MySQL中建立外鍵的錯誤:1215 Cannot add the foreign key constraint

1.兩個欄位的型別或大小不嚴格符合。其中,兩個字短分別是int(6)與int(7)也算不符。一個是unsigned(無符號),一個是signed也是不符的。

2.試圖設定外鍵的欄位沒有建立起索引,或不是一個primary key(主鍵)。如果其中一個不是primary key的話,你必須先為它建立一個索引。

3.其中一個或兩個表是MyISAM引擎的表。若想要使用外鍵約束,表必須是InnoDB引擎(實際上,如果兩個表都是MyISAM 引擎的,這個錯誤根本不會發生,但也不會產生外鍵,只會建立索引)你需要檢查表的引擎類型。

4.外鍵的名字不能重複。

5.你可能設定了ON DELETE SET NULL,但是相關的鍵的欄位又設定成了NOTS NULL值。你可能透過修改cascade的屬性值或把字段屬性設為allow null來解決。

6.請確定你的Charset和Collat​​e選項在表格層級和欄位層級上的一致。

7.你可能設定為外鍵設定了一個預設值,如default=0。

8.ALTER聲明中有語法錯誤。

以上是Navicat for MySQL怎麼建立多錶鏈接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn