2012-01-18 18 views
3

Netbeansを通じてJava Dbで外部キーを作成する際に問題が発生しています。 PLAYERSテーブルの属性を外部キーに変更するにはSQLコマンドを使用する必要があると私は確信しています。私は、このコマンドを実行しようとしている:Java DB(Netbeans)で外部キーを作成

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

TEAMNUMは、両方のテーブルに一貫性あるようにTEAMテーブルの主キーに関連する外部キーにPLAYERSテーブルにTEAMNUMを変更/追加することになったが、それは誤りを与えるです:

エラーコード-1、SQLステートX0Y44:制約 'TEAMNUM_FK'は無効です:テーブル 'APP'に一意キー制約または主キー制約はありません。外部キー。 行1、列1

誰でもお礼をお寄せください。

答えて

2

エラーメッセージがかなり明確である:

がテーブルTEAMに定義された主キーのいずれかがされていない、またはPKがちょうど(teamnum)とは異なる列からなるか、またはPLAYERSteamnum列のデータ型が一致しません。テーブルteamの列teamnumのデータ型。

テーブル定義を示したので、エラーメッセージで説明されている3つの選択肢のうち、どれがあなたのケースで適切かはわかりません。

+0

ああおかげでそのための多くは、私は今それを修正するために管理している、しかし、私は新しいエラーを取得する:エラーコード-1、SQL状態X0Y45を:外部キー制約 'TEAMNUM'は使用できません1つ以上の外部キーに一致する参照キーがないため、テーブルPLAYERSで追加または有効になりました。今何が間違っていますか?ありがとう。 行1、列1 –

+0

ありがとう –

1

これは、のNetBeans IDEでテーブルを作成した後、それを行うための正しい方法で選択テーブルチームと右の外部キーをクリックして、コマンドを実行し、

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

次の選択表チーム以下のコードを貼り付け選択再びリフレッシュ

PSを選択しますのは、APPを想定してみましょうすると、デフォルトのスキーマである

関連する問題