首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLITE bulk UPDATE语句

SQLITE bulk UPDATE语句
EN

Stack Overflow用户
提问于 2013-03-19 22:08:58
回答 2查看 11.3K关注 0票数 9

我想执行许多这样的SQL UPDATE语句:

代码语言:javascript
复制
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管理器中用Syntax编写?

编辑:当我在事务管理器中使用标准语法时,我收到这个错误消息:"SQLiteManager: BEGIN TRANSACTION;[ cannot start a transaction in a SQLite“

EN

回答 2

Stack Overflow用户

发布于 2013-03-19 22:25:05

根据SQL DocumentionCASE有两种受支持的语法

代码语言:javascript
复制
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语句可以进一步简化为

代码语言:javascript
复制
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)
票数 19
EN

Stack Overflow用户

发布于 2013-03-19 22:14:17

代码语言:javascript
复制
BEGIN TRANSACTION;
.....YOUR SQL Statements here

COMMIT;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15501779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档