Я пытался создать набор таблиц, используя следующий сценарий:
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]
Я не мог понять, как решить эту проблему. Мне нужен invoiceId в таблице ORDERS и OrderID в таблице INVOICE как иностранныйключи .. Вот почему я использовал инструкцию ALTER TABLE .. Тем не менее, это кажется неправильным .. (кстати, я использую hsqldb)
Я хотел бы знать, как это сделать правильно...