【发布时间】:2020-07-21 09:37:05
【问题描述】:
我正在使用 liquibase,并且我有一个 sql 脚本:
<changeSet id="fileSteps-updateUserIdFromMessage" author="aymen">
<sql>
update edi_file_steps fs INNER JOIN GU_User u
on u.login = SUBSTRING(fs.message,
locate('[',fs.message)+1,
LENGTH(fs.message)-locate('[',fs.message)-1)
set user_id= u.id,
message= SUBSTRING(fs.message, 0, locate('[',fs.message)-1)
where message LIKE '%Downloaded%' ;
</sql>
</changeSet>
我的脚本在 mysql 上运行良好。但是我的 java 程序在 hsql 数据库上运行。对我来说,这个脚本也应该适用于 hsqldb,因为它是一个纯 sql 语法。但是我收到了这个错误:
liquibase.exception.DatabaseException:意外令牌:需要内部:SET
【问题讨论】:
-
我认为没有可以使用的 DBMS,您通常不会以这种方式将连接单独放在
update语句下。考虑将其移至常规select,如本例所示:stackoverflow.com/a/1293347/11610186