sqlite3:一个事务中的多个更新

时间:2013-07-25 04:02:09

标签: python sqlite

我已经学会了如何使用SELECT UNION将多个INSERT放入一个事务中,如本例所示

var newQuery = true, query = '';
for (i=0; i<locations_length; i++) {
    if (newQuery) {
        query = 'INSERT INTO myTable (id, name, code)';
        newQuery = false;
    }
    else {
        query += ' UNION';
    }

    query += ' SELECT "'+values[i][0]+'", "'+values[i][1]+'", "'+values[i][2]+'"';

    if (i!=0 && i%499==0) {
        db.execute(query);
        newQuery = true;
    }
}

但它似乎不适用于多个UPDATE。

有什么办法可以将多个UPDATE放到一个交易中吗?

另外,有没有办法将INSERT和UPDATE的混合物放入一个事务中?

顺便说一下,我正在使用Python 2.7。

提前非常感谢你。

1 个答案:

答案 0 :(得分:1)

使用BEGIN TRANSACTIONCOMMITROLLBACK,您可以在一次交易中生成任意数量的对帐单。

http://www.sqlite.org/lang_transaction.html