timeEnter
no tiene valores por
defecto. Para que se incialice automáticamente es necesario installar un trigger .
El ejemplo muestra como escribir un trigger:
lhp@nereida:~/Lperl/src/SQLITE/examples$ cat trigger1 CREATE TRIGGER insert_t1_timeEnter AFTER INSERT ON t1 BEGIN UPDATE t1 SET timeEnter = DATETIME('NOW') WHERE rowid = new.rowid; END;La llamada
DATETIME('NOW')
retorna el tiempo UTC mientras que
datetime('now','localtime')
devuelve la hora actual:
sqlite> select datetime('now'); 2007-08-17 11:27:21 sqlite> select datetime('now','localtime'); 2007-08-17 12:27:33Para ejecutarlo hacemos:
hp@nereida:~/Lperl/src/SQLITE/examples$ sqlite3 test.db < trigger1Si ahora introducimos un nuevo registro vemos que tiene inicializado su campo
timeEnter
:
lhp@nereida:~/Lperl/src/SQLITE/examples$ sqlite3 test.db sqlite> insert into t1 (data,num) values ('First entry with timeEnter',19); sqlite> select * from t1; 1|This is sample data|3.0| 2|More sample data|6.0| 3|And a little more|9.0| 4|Another item|12.0| 5|First entry with timeEnter|19.0|2007-08-17 10:53:09
Casiano Rodríguez León