Multipe Update statements - MariaDB



我使用dbeaver连接到Mariadb。当我尝试运行多行更新语句时,例如

update x set warehouse_id='WH02' where soh_id='f0b4d220';
update x set warehouse_id='WHU1' where soh_id='17482705';

我得到错误"由:java.sql.SQLSyntaxErrorException引起:您的sql语法中有一个错误;请查看MariaDB服务器版本对应的手册,了解在"…"附近使用的正确语法。如果我对MySQL工作台中创建的数据库连接运行相同的查询,它运行起来不会有任何问题。

我认为";"的用法有问题但我找不到在Mariadb中运行多个更新语句的方法。我做错了什么?

要在dbeaver中进行批量更新,需要通过选择查询并运行Alt+X来运行脚本。

你可以试试这个:

update x
set warehouse_id = case soh_id
when 'f0b4d220' then 'WH02'
when '17482705' then 'WHU1'
end
where soh_id in ('f0b4d220', '17482705')

当字段上有唯一键soh_id时,可以使用INSERT INTO。。。。ON DUPLICATE KEY语句。

INSERT INTO x (soh_id, warehouse_id)
VALUES
('f0b4d220','WH02')
,('17482705','WHU1')
ON DUPLICATE KEY UPDATE warehouse_id = VALUES(warehouse_id;

最新更新