我正在使用带有后端HSQL的Java.我准备好的声明早先工作正常.最近,我在department和items表之间创建了依赖关系,并将自动生成的seq_id中的dep_seq_id列设置为一个简单的列(我们现在通过java代码更新id).在这些更改之后,所有依赖表创建/更新都会失败,并出现错误,例如"语句不在批处理模式下".
表结构如下:
CREATE TABLE DEPARTMENT
(
DEP_SEQ_ID INTEGER NOT NULL,
DEPT_STATE VARCHAR(6) NOT NULL,
NAME VARCHAR(20) NOT NULL,
YEAR VARCHAR(4),
CREATE_DATE DATE,
LINK VARCHAR(255),
PRIMARY KEY(SEQ_ID,DEPT_STATE)
);
CREATE TABLE ITEMS
(
ITEM_ID INTEGER NOT NULL,
ITEM_STATE VARCHAR(6) NOT NULL,
NAME VARCHAR(20),
ITEM_CODE VARCHAR(10),
DEP_SEQ_ID INTEGER,
DEPT_STATE VARCHAR(6),
FOREIGN KEY(DEP_SEQ_ID,DEPT_STATE) REFERENCES DEPARTMENT(SEQ_ID, DEPT_STATE) ON
DELETE CASCADE ON
UPDATE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
我不明白我在做错了什么.以下是我试图在Items表中插入数据的代码,部分代码如下所示.我希望它有意义,我已经更改了名称和列,因为我无法分享实际的代码.
PreparedStatement statement = null;
ResultSet generatedKeys = null;
Long mappingId = null;
try {
statement = m_connection.prepareStatement("insert into ITEMS (ITEM_ID, …Run Code Online (Sandbox Code Playgroud)