2009-12-26 4 views
12

Tengo una tabla que tiene este aspecto¿Es compatible sqlite3 con un activador para actualizar automáticamente un campo datetime 'updated_on'?

user_id | name | created_on | updated_on 
-------------------------------------------------- 
1   | Peter D | 1/1/2009  | 

Si inserto o actualizar un registro, me gustaría un disparador para actualizar el campo updated_on con fecha y hora ('ahora'). Pero no puedo encontrar el nombre de la función para apuntar a la fila actualizada más recientemente en sqlite3. ¿Hay alguno?

+0

http://www.sqlite.org/lang_createtrigger.html –

+0

Gracias Hassan, el problema es que no puedo encontrar una manera, desde el interior de un disparador, para apuntar la última fila actualizada en sqlite3. Yo uso 'last_insert_rowid()' en otro disparador. Pero estoy buscando 'last_update_rowid()' y no puedo encontrar nada parecido. –

+0

¡La respuesta proporcionada por @DougCurrie funciona realmente bien! Es una lástima que la documentación de SQLite no sea tan clara [Create trigger SQLite] (http://www.sqlite.org/lang_createtrigger.html) – Caumons

Respuesta

24
CREATE TRIGGER your_table_trig AFTER UPDATE ON your_table 
BEGIN 
    update your_table SET updated_on = datetime('now') WHERE user_id = NEW.user_id; 
END; 
+0

¡Funcionó como un amuleto! Gracias. –

+0

Si esto responde a su pregunta, es costumbre en "Aceptar" la respuesta haciendo clic en la marca de verificación junto a la respuesta. –

Cuestiones relacionadas