SQLITE批量UPDATE语句

前端之家收集整理的这篇文章主要介绍了SQLITE批量UPDATE语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想执行许多sql UPDATE语句,如下所示:

UPDATE cityd SET time_zone='-7.000000' WHERE locId = 173567;
UPDATE cityd SET time_zone='-8.000000' WHERE locId = 173568;
UPDATE cityd SET time_zone='-6.000000' WHERE locId = 173569;
UPDATE cityd SET time_zone='-5.000000' WHERE locId = 173570;
UPDATE cityd SET time_zone='-6.000000' WHERE locId = 173571;

我想优化事务时间,所以我需要使用BEGIN TRANSACTION / COMMIT对.如何在sqltite Manager中的sql语法中编写它?

编辑:
当我在sqlite管理器中使用标准语法时,我收到以下错误消息:
sqliteManager:BEGIN TRANSACTION; [无法在事务中启动事务”

解决方法

根据 SQL Documention,CASE有两种支持的语法

CASE x WHEN w1 THEN r1 WHEN w2 THEN r2 ELSE r3 END

CASE WHEN x = w1 THEN r1 WHEN x = w2 THEN r2 ELSE r3 END

因此,您的多个UPDATE语句可以进一步简化为

UPDATE  cityd
SET     time_zone = CASE locId
                        WHEN 173567 THEN '-7.000000'
                        WHEN 173568 THEN '-8.000000'
                        WHEN 173569 THEN '-6.000000'
                        WHEN 173570 THEN '-5.000000'
                        WHEN 173571 THEN '-6.000000'
                    END
WHERE   locId IN (173567,173568,173569,173570,173571)

猜你在找的Sqlite相关文章