我一直在通过 Netbeans 在 Java Db 中创建外键时遇到问题。我很确定我必须使用 SQL 命令将 PLAYERS 表中的属性更改为外键,因为我只能通过界面指定主键。我试过执行这个命令:
ALTER TABLE PLAYERS ADD CONSTRAINT TEAMNUM_FK
Foreign Key (TEAMNUM) REFERENCES TEAM (TEAMNUM);
应该将 PLAYERS 表中的 TEAMNUM 添加/更改为与 TEAM 表中的主键相关的外键,以便 TEAMNUM 在两个表中保持一致,但它给出了错误:
Error code -1, SQL state X0Y44: Constraint 'TEAMNUM_FK' is invalid: there is no unique or primary key constraint on table '"APP"."TEAM"' that matches the number and types of the columns in the foreign key. Line 1, column 1
如果有人能提供帮助那就太好了。谢谢。
最佳答案
错误信息很清楚:
没有为表 TEAM
定义主键,或者 PK 由不同的列组成,而不仅仅是 (teamnum)
或 teamnum 的数据类型
列与表 PLAYERS
中的 team
中的 teamnum
列的数据类型不匹配。
正如您展示的表定义,我无法判断错误消息解释的三种备选方案中的哪一种与您的情况相关。
关于java - 在 Java db (Netbeans) 中创建外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918904/