Buenas a todos le cuento que realize un trigger que se ejecuta cuando se reliza algun insert/update/delete en una tabla, registrando la informacion del log en la tabla bitacora, pero nose como puedo hacer para obtener el usuario que esta conectado en el sistema
ak dejo mi trigger
Código PHP:
reate or replace function log_productos()
returns trigger
as
$_$
declare
nombre varchar(30);
estado varchar(30);
begin
if(TG_OP = 'INSERT') then
nombre=new.x_nombre_p;
insert into bitacora ( kn_id_bitacora, kx_username, x_tabla_afectada, x_accion, h_hora, d_fecha, x_descripcion)
values (nextval('bitacora_kn_id_bitacora_seq'::regclass),'admin', 'Productos','Inserta',CURRENT_TIME ,current_date,'Se Inserto nuevo producto: ' ||nombre);
end if;
if(TG_OP='DELETE')then
insert into bitacora ( kn_id_bitacora, kx_username, x_tabla_afectada, x_accion, h_hora, d_fecha, x_descripcion)
values (nextval('bitacora_kn_id_bitacora_seq'::regclass),'admin', 'Productos','Elimina',CURRENT_TIME ,current_date,'Se Elimino producto: ' ||old.x_nombre_p);
end if;
if(TG_OP='UPDATE')then
nombre=old.x_nombre_p;
estado= new.x_estado_p;
if(estado = 'Eliminado')then
insert into bitacora ( kn_id_bitacora, kx_username, x_tabla_afectada, x_accion, h_hora, d_fecha, x_descripcion)
values (nextval('bitacora_kn_id_bitacora_seq'::regclass),'admin', 'Productos','Elimina',CURRENT_TIME ,current_date,'Se Elimino Producto: '||nombre);
end if;
if(estado = 'Libre')then
insert into bitacora ( kn_id_bitacora, kx_username, x_tabla_afectada, x_accion, h_hora, d_fecha, x_descripcion)
values (nextval('bitacora_kn_id_bitacora_seq'::regclass),'admin', 'Productos','Actualiza',CURRENT_TIME ,current_date,'Se Actualizo Producto: '||nombre);
end if;
end if;
return null;
end;
$_$ language 'plpgsql';
de antemano gracias