En las capturas que recogí de los triggers, apunte los términos de old y new de prisa y tal y como venia, puesto que estaba más interesada en otros puntos. Pero al comprobarlo ahora, me doy cuenta que la explicación apuntada es altamente incorrecta. Así que primero quiero aclararlo.
:new y :old son pseudo-registros que le permiten acceder a los nuevos y viejos valores de columnas particulares.
Si tengo la siguiente tabla
CREATE TABLE comida ( id NUMBER PRIMARY KEY, bar VARCHAR2(10), baz VARCHAR2(10) );
e inserto una fila
INSERT INTO comida ( id, bar, baz ) VALUES( 1, 'Bar 1', 'Baz 1' );
Estos serán los valores de old y new
:old.id = NULL, :old.bar=NULL, :old.baz=NULL
:new.id = 1, :new.bar = 'Bar 1', :new.baz = 'Baz 1'
Si a continuación, actualizo esa fila
UPDATE comida SET baz = 'Baz 2' WHERE id = 1;
Estos serán los valores de old y new
:old.id =1, :old.bar = 'Bar 1', :old.baz = 'Baz 1'
:new.id =1, :new.bar= 'Bar 1', :new.baz= 'Baz 2'
Si a continuación, elimino la fila
DELETE FROM comida WHERE id = 1;
Estos serán los valores de old y new
:old.id = 1, :old.bar = 'Bar 1', :old.baz = 'Baz 2'
:new.fid = NULL, :new.bar = NULL, :new.baz = NULL
0 comentarios:
Publicar un comentario