2012-01-18 53 views
3

我一直在通過Netbeans在Java Db中創建外鍵時遇到問題。我很確定我必須使用SQL命令將PLAYERS表中的屬性更改爲外鍵,因爲我只能通過界面指定主鍵。我試圖執行這個命令:在Java數據庫中創建外鍵(Netbeans)

ALTER TABLE PLAYERS ADD CONSTRAINT TEAMNUM_FK 
Foreign Key (TEAMNUM) REFERENCES TEAM (TEAMNUM); 

它應該添加/更改在球員表TEAMNUM於與團隊表的主鍵的外鍵,以便TEAMNUM是兩個表中洽,但它給錯誤:

錯誤代碼-1,SQL狀態X0Y44:約束'TEAMNUM_FK'無效:表''APP'上沒有唯一或主鍵約束。「TEAM」'匹配列表的數量和類型外鍵。 第1行第1列

如果有人能幫助,那將是非常感謝。

回答

2

錯誤消息是很清楚:

有要麼爲表TEAM或PK定義沒有主鍵由不同的列的不僅僅是(teamnum)teamnum列的PLAYERS的數據類型不匹配列表team中列teamnum的數據類型。

正如您已經展示了您的表格定義,我無法確定錯誤消息解釋的三種替代方法中的哪一種與您的情況相關。

+0

哦,非常感謝,我設法立即解決它,但是我得到一個新的錯誤:錯誤代碼爲-1,SQL狀態X0Y45 :外鍵約束'TEAMNUM'不能添加到表格PLAYERS或在表格PLAYERS上啓用,因爲一個或多個外鍵沒有匹配的引用鍵。你有什麼想法現在怎麼了?謝謝。 第1行第1列 – 2012-01-18 23:26:21

+0

非常感謝 – 2012-01-18 23:31:58

1

這是爲了做到這一點,在NetBeans IDE中,選擇表TEAM創建表後,然後右擊外鍵,選擇執行命令並粘貼下面

Alter Table APP.PLAYERS 
Add FOREIGN KEY (TEAMNUM_FK) 
References APP.TEAM (TEAMNUM); 

下一頁選擇表隊的代碼的正確方法再次,選擇刷新

PS:假設APP是默認模式