Как выполнить вложенный запрос в SPring HSQLDB

Я создаю вложенный скрипт для HSQLDB, например

вставить в таблицу (col1, col2) значения ('val1', (выберите val2 из таблицы2, где col3='val3'))

Когда я пытаюсь выполнить этот запрос, используя Spring JDBCTemplate как

jdbcTemplate.execute(query);

это дает мне исключение грамматики BadSQL с неизвестным токеном:

Однако, если я выполняю тот же запрос для MySQL, он работает нормально, но для HSQLDB - not1.

Кто-нибудь может сказать мне проблему?

1 ответ

Синтаксис запроса поддерживается последней версией HSQLDB 2.x.

Если в строке всегда ровно одна строка table2 с col3='val3' тогда утверждение успешно. Но если есть более одного ряда, он терпит неудачу. Известно, что MySQL игнорирует такие детали стандарта SQL.

Если это проблема, то вы можете использовать

 insert into table (col1, col2) 
 values ('val1', (select val2 from table2 where col3='val3' limit 1))
Другие вопросы по тегам