2009-04-15 3 views
8

je fais quelque chose commesqlite, METTRE A JOUR OU REMPLACER

MISE À JOUR OU REMPLACER someTable SET a = 1, b = 2 où c = 3

Je pense si elle ne marche pas existe, il sera inséré dans le DB. Mais rien ne se passe et je n'ai pas d'erreurs. Comment puis-je insérer des données, le remplacer si elle existe déjà et d'utiliser un où pour la condition (au lieu de remplacer la Colombie-Britannique d'un identifiant unique)

Répondre

16

Attention, INSERT ou REPLACE n'a pas le comportement attendu d'une "UPDATE OR REPLACE". Si vous ne définissez pas les valeurs pour tous les champs, INSERT OR REPLACE va les remplacer par des valeurs par défaut, alors qu'avec UPDATE vous gardez les anciennes valeurs. Voir ma réponse ici pour un exemple: SQLite - UPSERT *not* INSERT or REPLACE

9

Essayez

INSERT OR REPLACE INTO [someTable] (a,b) VALUES(1,2) WHERE c = '3' 
+3

Cette syntaxe n'est pas valide. Considérez https://www.sqlite.org/lang_insert.html pour insérer et https://www.sqlite.org/lang_select.html pour sélectionner. Aucune clause where ne peut être ajoutée après les valeurs (...). –

Questions connexes