我想执行许多这样的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管理器中用Syntax编写?
编辑:当我在事务管理器中使用标准语法时,我收到这个错误消息:"SQLiteManager: BEGIN TRANSACTION;[ cannot start a transaction in a SQLite“
发布于 2013-03-19 22:25:05
根据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)发布于 2013-03-19 22:14:17
BEGIN TRANSACTION;
.....YOUR SQL Statements here
COMMIT;https://stackoverflow.com/questions/15501779
复制相似问题