0

SQL (Oracle DB) の INSERTING または CONSTRAINT に問題があります。

テーブルBOOKS(ID PK、TITLE、YEAR、PRICE、ID_AUTHOR FK、ID_PUBLISHER FK、ID_KIND FK)を作成し、そのテーブルに18行を挿入しようとしました。9行を正しく追加しましたが、10番目にこのエラーがありました:

INSERT INTO KSIAZKA 
VALUES 
(10, 'Visual Basic .NET i platforma .NET', 2000, 70.00, 7, 3, 9)
エラーレポート:
SQL エラー: ORA-02291: 整合性制約 (SYSTEM.ID_AUTOR) に違反しています - 親キーが見つかりません
02291.00000 - "整合性制約 (%s.%s) 違反 - 親キーが見つかりません"
*原因: 外部キー値に一致する主キー値がありません。
*処置: 外部キーを削除するか、一致する主キーを追加してください。

同じ行を 10 行挿入しようとしましたが、9 行は正しく追加されましたが、最後の行でエラーが発生しました。

私の質問は-なぜ9行しか挿入できないのですか? その問題で何ができますか?

ところで。テーブルの制約が正しいことを示すクエリを作成できます。

Oracle 11g Express Edition と SQL Developer を使用しています。

4

2 に答える 2

0

問題は次のとおりです。

 ADD CONSTRAINT ID_AUTOR FOREIGN KEY(ID) REFERENCES AUTOR (ID)

外部キーは id_autor にする必要があります。そのように:

 ADD CONSTRAINT ID_AUTOR FOREIGN KEY(ID_AUTOR) REFERENCES AUTOR (ID)

よろしく!

于 2013-03-29T12:33:24.343 に答える
0

明示的なシンタックス (列名を使用) を使用してみてください。

INSERT INTO KSIAZKA (column_name1,column_name2,column_name3...)
VALUES 
(10, 'Visual Basic .NET i platforma .NET', 2000, 70.00, 7, 3, 9)

列の順序が正しくないと思います。

于 2013-03-29T00:32:36.297 に答える