2009-04-15 18 views
8

hago algo comosqlite, actualizar o sustituir

actualizar o sustituir alguna_tabla SET a = 1, b = 2 donde c = 3

espero si doesnt existe va a ser insertado en el DBs. Pero no pasa nada y no recibo errores. ¿Cómo puedo insertar datos, reemplazarlo si ya existe y utilizar un donde por la condición (en lugar de sustituir AC de un identificador único)

Respuesta

16

cuidadosa, insertar o sustituir no tiene el comportamiento esperado de un "ACTUALIZAR O REEMPLAZAR".

Si no establece los valores para todos los fieds, INSERTAR O REEMPLAZAR los reemplazará con valores predeterminados, mientras que con una ACTUALIZACIÓN usted espera mantener los valores anteriores.

Ver mi respuesta aquí para un ejemplo: SQLite - UPSERT *not* INSERT or REPLACE

9

Trate

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

Esta sintaxis no es válida. Considere https://www.sqlite.org/lang_insert.html para insertar, y https://www.sqlite.org/lang_select.html para seleccionar. No se puede agregar la cláusula después de los valores (...). –