2017-01-17 8 views
0

同じクエリで一括データを挿入および更新する方法はありません。私は多くの好きなものを見ていますが、解決策を得ていません。コードは取得できますが、機能していません。1つのクエリで一括挿入と更新sqlite

INSERT INTO `demo1` (`id`,`uname`,`address`) 
VALUES (1, 2, 3), 
VALUES (6, 5, 4), 
VALUES (7, 8, 9) 
ON DUPLICATE KEY UPDATE `id` = VALUES(32), `uname` = VALUES (b),`address` = VALUES(c) 

誰でも助けてくれますか?

答えて

0

SQLiteにはのエイリアスであるREPLACE statementがありますが、重複するキーが見つかると古い行が削除されます。

古い行(複数可)からのデータを保持したい場合は、次の2つの行ごとに、ステートメントを使用する必要があります:あなたの再生のため

db.execute("UPDATE demo1 SET ... WHERE id = 1") 
if db.affected_rows == 0: 
    db.execute("INSERT ...") 
+0

おかげで、しかし、どのように私は、大量のデータのためにそれを使用することができます。あなたはあなたの答えを更新してください。 – user3666505

+0

私は「各列について」と言った。 –

+0

その場合、私はループシステムを使用する必要がありますか? – user3666505