Создание внешнего ключа в Java db (Netbeans) - PullRequest
3 голосов
/ 19 января 2012

У меня были проблемы с созданием внешнего ключа в Java Db через Netbeans.Я почти уверен, что должен использовать команду SQL, чтобы изменить атрибут в таблице PLAYERS на внешний ключ, поскольку я могу указывать только первичные ключи через интерфейс.Я попытался выполнить эту команду:

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

Предполагается добавить / изменить TEAMNUM в таблице PLAYERS во внешний ключ, связанный с первичным ключом в таблице TEAM, чтобы TEAMNUM был согласованным в обеих таблицах, но этовыдает ошибку:

Код ошибки -1, состояние SQL X0Y44: ограничение 'TEAMNUM_FK' недопустимо: не существует ограничения уникального или первичного ключа для таблицы '' APP '.' TEAM '', которая соответствуетколичество и типы столбцов во внешнем ключе.Строка 1, столбец 1

Если кто-то может помочь, это было бы здорово.спасибо.

Ответы [ 2 ]

2 голосов
/ 02 июня 2014

Это правильный способ сделать это, после создания таблицы в IDE NetBeans, выберите таблицу TEAM, щелкните правой кнопкой мыши Foreign Keys, выберите команду Execute и вставьте код ниже

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

Далее выберите таблицу Team снова и выберите обновить

ps: предположим, APP - ваша схема по умолчанию

2 голосов
/ 19 января 2012

Сообщение об ошибке довольно ясно:

либо для таблицы TEAM не определен первичный ключ, либо PK состоит из столбцов, отличных от (teamnum), или типа данных teamnumстолбец в PLAYERS не соответствует типу данных столбца teamnum в таблице team.

Поскольку вы показали ваши определения таблиц, я не могу сказать, какой из трех вариантов сообщения об ошибкахобъяснение актуально в вашем случае.

...