Using `executemany` to update entries in an existing SQLite3 database (using Python sqlite3)

后端 未结 2 511
再見小時候
再見小時候 2021-02-14 19:57

I know that executemany can be used to conveniently add new entries to a database; useful to reduce the Python method-call overheads compared to single execut

2条回答
  •  青春惊慌失措
    2021-02-14 20:43

    You need to pass a sequence of sequences ([[cont,id], [cont,id], [cont,id], ...], not [cont, cont, cont, ...], [id, id, id, ..]):

    for path in paths:
        params = []
        for data in some_computation(path):
            if len(data_ids) >= CHUNKSIZE:
                c.executemany("UPDATE TABLENAME SET cont=? WHERE id=?", params)
                cnx.commit()
                params = []
            params.append([data[1], data[0]])
        if params:
            c.executemany("UPDATE TABLENAME SET cont=? WHERE id=?", params)
        cnx.commit()
    

提交回复
热议问题