Я пытаюсь запустить мой интеграционный тест для своего пакетного приложения Spring Cloud Task, используя в памяти hsql db, и он дает мне следующую ошибку, выполняющую эту инструкцию db. Этот оператор отлично работает в sqlserver db. Есть ли какое-то синтаксическое изменение, которое мне нужно сделать? Спасибо!
Создать Создать запрос
CREATE TABLE TASK_SEQ (
ID BIGINT NOT NULL,
UNIQUE_KEY CHAR(1) NOT NULL,
constraint UNIQUE_KEY_UN unique (UNIQUE_KEY)
);
Вставить запрос
INSERT INTO TASK_SEQ (ID, UNIQUE_KEY) select * from (select 0 as ID, '0' as UNIQUE_KEY) as tmp;
Ошибка Stacktrace
Caused by:org.springframework.jdbc.datasource.init.ScriptStatementFailedException:
Failed to execute SQL script statement #1 of class path resource
[schema-DML.sql]: INSERT INTO TASK_SEQ (ID, UNIQUE_KEY) select * from
(select 0 as ID, '0' as UNIQUE_KEY) as tmp; nested exception is
java.sql.SQLSyntaxErrorException: unexpected token: ) at
org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:491)
Вам нужно включить совместимость SQL Server в HSQLDB. См. Руководство:
http://hsqldb.org/doc/2.0/guide/compatibility-chapt.html#coc_compatibility_mssql
Ваше заявление выглядит излишне сложным. Что-то вроде ниже должно работать в большинстве баз данных.