用连接更新H2

时间:2017-06-07 09:59:25

标签: mysql database h2 liquibase

作为开发DB我正在使用MySQL,而对于测试我正在使用H2数据库。 以下脚本在MySQL中运行良好,但在H2上失败。

UPDATE `table_a`
JOIN `table_b` ON `table_a`.id=`table_b`.a_id
SET `table_a`.b_id=`table_b`.id

在互联网上,我发现h2不支持带有UPDATE的{​​{1}}子句。也许有一种方法可以在没有JOIN子句的情况下重写这个脚本?

顺便说一下,我正在使用liquibase。也许我可以用它的xml语言编写JOIN子句?

我尝试了以下脚本

UPDATE

但我仍然会遇到错误。似乎,H2不支持在一个查询中更新多个表。如何在两个不同的查询中重写此查询以收集ID并插入它们?

1 个答案:

答案 0 :(得分:6)

尝试这样的事情:

update table_a a
set a.b_id = (select b.id from table_b b where b.a_id = a.id)
where exists
(select * from table_b b where b.a_id = a.id)