搜尋
首頁資料庫navicatNavicat for MySQL怎麼建立多錶鏈接

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
Navicat批量修改數據如何使用函數Navicat批量修改數據如何使用函數Mar 04, 2025 pm 04:12 PM

本文使用具有數據庫功能的SQL Update語句在NAVICAT中說明了有效的大量數據修改。 它使用諸如date_add(),concat()和其他函數詳細詳細介紹,通過索引強調性能優化,避免使用廁所

Navicat如何批量刪除特定數據Navicat如何批量刪除特定數據Mar 04, 2025 pm 04:10 PM

本文使用SQL Delete語句在NAVICAT中詳細介紹了有效的批量數據刪除,該語句的where語句。 它強調了最佳實踐:數據庫備份,交易,查詢測試,索引和錯誤處理以防止數據丟失並確保E

Navicat批量修改數據如何使用視圖Navicat批量修改數據如何使用視圖Mar 04, 2025 pm 04:06 PM

本文使用Navicat中的視圖探討了有效的大量數據修改。 它詳細介紹了優勢,包括清潔疑問和孤立的數據修改,但也突出顯示了諸如不可升值視圖和潛在性能之類的限制

Navicat批量修改數據如何使用表達式Navicat批量修改數據如何使用表達式Mar 04, 2025 pm 04:11 PM

Navicat的查詢構建器使用SQL的Update語句中的表達式促進了有效的批處理數據修改。 文章詳細介紹創建和使用表達式,包括合併正則表達式(數據庫 - 系統依賴性)和

Navicat批量修改數據如何使用存儲過程Navicat批量修改數據如何使用存儲過程Mar 04, 2025 pm 04:03 PM

本文解釋了Navicat的存儲過程如何有效地處理批量數據修改。 它解決了局限性和最佳實踐,強調了在程序中優化的SQL,以減少網絡開銷並提高性能

Navicat批量修改數據如何處理大小寫Navicat批量修改數據如何處理大小寫Mar 04, 2025 pm 04:05 PM

本文解釋瞭如何處理Navicat中的大量數據修改期間的情況敏感性。 它使用SQL Update語句詳細介紹了具有數據庫特異性字符串函數(下(),Upper()等),以進行MySQL的有效情況更改,PostgreSQL,

如何使用Navicat管理SSH隧道?如何使用Navicat管理SSH隧道?Mar 13, 2025 pm 06:07 PM

本文解釋了使用Navicat進行SSH隧道管理,涵蓋設置,故障排除和處理多個隧道。主要重點是安全數據庫連接。

Navicat如何批量修改外鍵數據Navicat如何批量修改外鍵數據Mar 04, 2025 pm 04:08 PM

本文詳細介紹了有效批量修改Navicat中的外鍵數據的方法。 它使用SQL更新語句根據需要解決涉及現有和新的外鍵值的方案。 包括DAT在內的關鍵最佳實踐

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。