0

次のスクリプトを使用してテーブルのセットを作成しようとしました。

DROP TABLE ORDERS IF EXISTS;
DROP TABLE INVOICE IF EXISTS;
CREATE TABLE ORDERS(
    ORDER_ID BIGINT NOT NULL PRIMARY KEY IDENTITY,
    ...
    INVOICE_ID BIGINT,
    ...
    );

CREATE TABLE INVOICE(
    INVOICE_ID BIGINT NOT NULL PRIMARY KEY IDENTITY,
    ...
    ORDER_ID BIGINT,
    ...
    FOREIGN KEY(ORDER_ID) REFERENCES ORDERS(ORDER_ID)
);
ALTER TABLE ORDERS ADD FOREIGN KEY(INVOICE_ID) REFERENCES INVOICE(INVOICE_ID);

これによりSQL例外が発生します

java.sql.SQLException:FOREIGN KEY制約によって参照されます:ステートメント[DROP TABLE ORDERSIFEXISTS]のPUBLIC.INVOICE.SYS_FK_10079

これを解決する方法がわかりませんでした。ORDERSテーブルのinvoiceIdとINVOICEテーブルのOrderIDが外部キーとして必要です。そのため、ALTER TABLEステートメントを使用しました。それでも、間違っているようです。 hsqldbを使用)

私はこれを適切に行う方法を知りたいです..どんな助けでも大歓迎です..

4

1 に答える 1

0

最初に注文に外部キーをドロップします。

ALTER TABLE ORDERS DROP FOREIGN KEY(INVOICE_ID) REFERENCES INVOICE(INVOICE_ID);

次に、コマンドを実行します。

于 2011-07-20T07:26:25.807 に答える