grails - DB2 antes del comportamiento de activación de la actualización
gorm (1)
La variable USER
DB2 (también llamada "registro especial") contiene el ID de autorización de la conexión de base de datos actual. Si una aplicación desea pasar otro ID de usuario a DB2, puede hacerlo llamando a la función de la API sqleseti()
o al procedimiento almacenado WLM_SET_CLIENT_INFO()
- más información aquí . El disparador puede hacer referencia a otro registro especial, CURRENT CLIENT_USERID
.
Me pregunto si alguien me puede ayudar a comprender cómo se comporta un desencadenador DB2 antes de inserción. Tengo una aplicación Grails que inserta filas en una base de datos DB2. La tabla en cuestión tiene un activador de inserción anterior que actualiza la fecha y el usuario de la actualización:
CREATE TRIGGER WTESTP.SCSMA11I NO CASCADE BEFORE INSERT ON
WTESTP.SCSMA01T REFERENCING NEW AS NEWROW FOR EACH ROW MODE
DB2SQL BEGIN ATOMIC SET NEWROW.LST_UPDT_TMSP =
CURRENT_TIMESTAMP ; SET NEWROW.USER_ID = RTRIM ( USER ) ; END ;
En mi aplicación Grails, establecí todos los valores, incluida la identificación de usuario:
flatAdjustmentInstance.setUserID("TS37813")
Usamos una identificación de aplicación genérica y una contraseña a través de JNDI para hacer la conexión a la base de datos. Para fines de auditoría, debo establecer el valor del usuario para cualquiera que haya iniciado sesión en la aplicación. ¿Es la única solución para eliminar el disparador por completo y solo estar seguro de que está configurado?