UPSERT en SQLite
lundi 14 juillet 2014 à 15:06 phyks, le 14/07/2014 à 15:06
J'ai trouvé trois solutions pour faire un UPSERT en SQLite :
1. INSERT OR IGNORE avec des valeurs minimales, puis un UPDATE pour compléter avec tous les champs
2. UPDATE puis INSERT si l'UPDATE n'a affecté aucune ligne
3. INSERT OR REPLACE INTO en allant chercher les anciennes données et en jouant du COALESCE
Après tests (tout du moins dans mon cas), il semblerait que la méthode 2 soit la plus rapide, suivie de près par la méthode 1, cf https://snippet.phyks.me/index.php?txt=53c3d64fc1731&pre=ok.
(Permalink)
J'ai trouvé trois solutions pour faire un UPSERT en SQLite :
1. INSERT OR IGNORE avec des valeurs minimales, puis un UPDATE pour compléter avec tous les champs
2. UPDATE puis INSERT si l'UPDATE n'a affecté aucune ligne
3. INSERT OR REPLACE INTO en allant chercher les anciennes données et en jouant du COALESCE
Après tests (tout du moins dans mon cas), il semblerait que la méthode 2 soit la plus rapide, suivie de près par la méthode 1, cf https://snippet.phyks.me/index.php?txt=53c3d64fc1731&pre=ok.
(Permalink)