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 约束引用:PUBLIC.INVOICE.SYS_FK_10079 在语句 [DROP TABLE ORDERS IF EXISTS]

我不知道如何解决这个问题..我需要 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 回答