2017-09-07 76 views
1

我創建了一個簡單的用戶表,它具有用戶標識和用戶名(唯一)。無法創建簡單外鍵約束 - 形成不正確

創建另一個表單元,這個表包含cratedby我想在用戶表中記錄用戶名。我創建了一個外鍵字段。在用戶中使用用戶名創建。它完成沒有任何問題。

現在我創建了另一個表customers1,它也有一個字段cratedby(用戶名之一)。當我建立外鍵關係時拋出一個錯誤 - 外鍵常量被錯誤地形成。

表中沒有任何數據。爲什麼它的單位表不在customers1表中。我正在上傳3張圖片。

請幫助...我讀過類似的問題,嘗試了幾個選項,但沒有奏效。 3 Tables, HeidiSQL

+0

這是一個常見問題解答。請標記你的SQL。閱讀其官方文檔和谷歌許多不同的錯誤/問題/問題/ desiderata不同的措辭,不只是'幾個'。用戶表中的用戶名可以爲空?請閱讀並在[mcve]上採取行動。請[使用文字表格,而不是圖片和鏈接](https://meta.stackoverflow.com/a/285557/3404097)。 – philipxy

回答

0

首先,不要使用用戶名作爲主鍵,而要使用userid,因爲用戶名可能類似。

第二個FOREIGN KEY是一個表中引用另一個表中PRIMARY KEY的字段(或字段集合)。在你的表中,userid是主鍵(帶有黃色鍵圖標),而不是用戶名。

如果您可以使用控制檯,請改用它。並執行以下操作:

-> CREATE TABLE USERS(USERID INT PRIMARY KEY AUTO_INCREMENT, USERNAME VARCHAR(30)); 
-> CREATE TABLE UNIT (UNITID INT PRIMARY KEY, USERID INT,FOREIGN KEY (USERID) REFERENCES USERS (USERID)); 
-> CREATE TABLE CUSTOMER (CUSTOMERID INT PRIMARY KEY, USERID INT, FOREIGN KEY (USERID) REFERENCES USERS (USERID)); 
+0

問題解決了,謝謝你的建議。 – kpkdhar22

+0

然後請標記爲已回答。 –