我试图使用以下脚本创建一组表:
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)
我想知道如何正确地做到这一点。欢迎任何帮助..
答案 0 :(得分:0)
首先在订单上删除外键:
ALTER TABLE ORDERS DROP FOREIGN KEY(INVOICE_ID) REFERENCES INVOICE(INVOICE_ID);
然后运行你的命令。