作者:大学城贝岗彩虹屋屋公寓 | 来源:互联网 | 2023-02-01 20:02
作为开发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
子句JOIN
.也许有一种方法可以在没有JOIN
子句的情况下重写这个脚本?
顺便说一下,我正在使用liquibase.也许我可以UPDATE
用它的xml语言编写子句?
我尝试了以下脚本
UPDATE table_a, table_b
SET table_a.b_id = table_b.id
WHERE table_a.id = table_b.a_id
但我仍然遇到错误.似乎,H2不支持在一个查询中更新多个表.如何在两个不同的查询中重写此查询以收集ID并插入它们?
1> Thomas Muell..:
尝试这样的事情:
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)