Ejemplo deTriggers en MariaDB con FoxyDB

154 views
Skip to first unread message

Mario Escudero

unread,
May 2, 2016, 9:04:26 PM5/2/16
to Comunidad de Visual Foxpro en Español
Buenas noches:

Continuando con mi formulario ejemplo de Familias de Artículos, ahora he avanzado un poco con los Triggers para crear tablas de Auditoría.
Es increíble lo sencillo, práctico y potente que es programar en MariaDB.
Este es un excelente tutorial de MariaDB donde nos da la "carnecita" de este motor:

Finalmente, los triggers que hice para mi ejemplo al INSERTAR, MODIFICAR Y ELIMINAR son:

1) Al Insertar:
BEGIN
insert into aud_fam_articulos (codigo,nombre_old,nombre_new,usuario,accion,
fecha,hora) values (new.codigo,'',new.nombre,current_user(),"CREADO",
curdate(),curtime());
END

2) Al Modificar:
BEGIN
insert into aud_fam_articulos (codigo,nombre_old,nombre_new,usuario,accion,
fecha,hora) values (new.codigo,old.nombre,new.nombre,current_user(),"MODIFICADO",
curdate(),curtime());
END

3) Al Eliminar (Delete):
BEGIN
insert into aud_fam_articulos (codigo,nombre_old,nombre_new,usuario,accion,
fecha,hora) values (old.codigo,old.nombre,"",current_user(),"ELIMINADO",
curdate(),curtime());
END


Ojo que todo esto es en MariaDB.
Para nada he tocado el formulario....

Espero que les sirva de algo...
Saludos




Douglas Sánchez

unread,
May 2, 2016, 10:46:42 PM5/2/16
to publice...@googlegroups.com
Hola almacenar dicha accion tenes un formulario de mantenimiento?

Tengo una app ya con casi 9 años de uso y esta tabla ya se ha inflado y por lo tanto mi base de datos tambien en mysql y para restaurarla dilata un mundo. Lo que me ha forzado guardar por otra lado los ultimos 5 años y esto ha ayudado un poco.

Que planes tiene tu para un futuro?, me gustaria compartieras tu idea.

Saludes

Dsanchez

Mario Escudero

unread,
May 3, 2016, 9:33:19 PM5/3/16
to publice...@googlegroups.com

Hola Douglas.
La verdad es que recién voy a implementar las tablas de Auditoría pero sólo en algunos formularios y tablas que lo ameriten.
Supongo que el hecho de que crezcan dichas tablas es propio de la aplicación e inevitable por lo que estaría de acuerdo en lo que haces y es parte del soporte que le tendrías que hacer a tu cliente.
Quizás otro manera de hacerlo sería pasar las acciones AMB a otras tablas en forma automática, cada año o más o algún artificio similar.
Saludos

Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

Mario Escudero

unread,
May 6, 2016, 8:54:08 AM5/6/16
to publice...@googlegroups.com

Douglas, te copio la respuesta de un amigo que trabaja en SQL Server y no hay mucha diferencia que digamos con Mysql o MariaDb. Saludos
**********************************
No entiendo a que te refieres con lo de como administro estos casos.

Te refieres a la consulta donde están preguntando que tiene una base de datos con casi 9 años? y que se ha inflado mucho y que demora cuando restauran?.

Pues cuando hay información que no se mueve mucho, y está ocupando espacio, con sql server lo que se hace son particiones verticales, horizontales, hay muchas maneras de manejar esos escenarios, además que no podemos estar sacando la información a un lado y a otro, sino que la idea es que esté toda centralizada, para cuando en un momento determinado, se necesite consultar algo, no vas a estar poniéndote a buscar nos e dónde.

SQL Server, a mas cantidad de datos en las tablas su desempeño es mejor, pero la verdad no se que cosa sea lo que agrande con casi ya 9 años, no se que tipo de información manejen, y que no se si te comenté, tengo un cliente desde junio de 1998, como verás ya va a cumplir 20 años, y no tengo problemas, claro que no hay mucha transacción tampoco, solo son 12 mil clientes a los cuales se les emite una factura al mes, y por consiguiente cada factura recibe un pago por cada una, osea hablamos de 12 mil facturas al mes, mas 12 mil pagos al mes, estamos hablando de 2 tablas que son las que se mueven mas, facturas 12 mil al mes por 12 meses por 16 años ya casi, estamos hablando de mas de 2 millones de registros en facturas y otro tanto en pagos, y pues te digo que todo marcha muy bien, sin lentitud ni nada de eso.


Mario Escudero
Rpm #995817087
www.cheff2000.com

Enviado desde mi móvil

El 2/5/2016 21:46, "Douglas Sánchez" <dougl...@gmail.com> escribió:
Reply all
Reply to author
Forward
0 new messages