Es muy útil, al crear una tabla cuyos datos pueden ser modificados con cierta frecuencia, añadir campos que especifiquen el momento de creación y el de modificación. Por ejemplo, creamos la siguiente tabla de configuración para una aplicación:
1 2 3 4 5 6 7 8 9 10 |
El objetivo es que cuando creemos un nuevo valor, éste rellene automáticamente las fechas de creación y modificación a la fecha actual. Podríamos crear un procedimiento almacenado por el cuál crear nuevos valores, y asegurarnos de utilizar siempre el procedimiento en lugar de un INSERT, o podremos crear un trigger que se dispare cuando creemos un nuevo elemento en la tabla:
1 2 3 4 5 6 7 |
Con esto, siempre que ejecutemos lo siguiente:
Se habrán rellenado también los dos campos de fecha.
Ahora necesitamos también crear otro trigger para que cuando el valor se actualice, también lo haga la fecha de modificación:
1 2 3 4 5 6 |
Así, cuando hagamos un UPDATE, la fecha de modificación se actualizará automáticamente, y por ejemplo, podremos liberar la carga de programarlo en el lenguaje con el que interactuamos con MySQL.
Extra
Por curiosidad, dejo aquí la solución de la que hablé al principio, con procedimientos almacenados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DELIMITER $$ CREATE PROCEDURE `PoesiaBinaria`.`insertConfiguracion` ( `In_pref` VARCHAR (64), `In_value` VARCHAR(128) ) BEGIN INSERT INTO `PoesiaBinaria`.`configuracion` (`pref`, `value`, `ctime`, `mtime`) VALUES (In_pref, In_value, NOW(), NOW()); END $$ DELIMITER ; DELIMITER $$ CREATE PROCEDURE `PoesiaBinaria`.`updateConfiguracion` ( `In_pref` VARCHAR (64), `In_value` VARCHAR(128) ) BEGIN UPDATE `PoesiaBinaria`.`configuracion` SET `value`=In_value, `mtime`=NOW() WHERE `pref`=In_pref; END $$ DELIMITER ; |
Así, siempre que vayamos a insertar un nuevo parámetro de configuración debemos hacer:
1 | CALL PoesiaBinaria.insertConfiguracion('filas_por_pagina', 50); |
y cuando queramos modificar un dato:
1 | CALL PoesiaBinaria.updateConfiguracion('filas_por_pagina', 20); |
Observaremos que las fechas de los campos de creación y actualización se modificarán automáticamente igual que lo hacíamos con los triggers.
Pingback: Bitacoras.com /
Gracias por compartir el código y la explicación detallada de cómo utilizar triggers y procedimientos almacenados en MySQL para mantener actualizadas las fechas de creación y modificación en una tabla de configuración. La utilización de estos mecanismos es una práctica común y muy útil para mantener la integridad de los datos y automatizar tareas repetitivas.
Has presentado una solución sólida y bien estructurada para mantener las fechas de creación y modificación actualizadas automáticamente en una tabla de configuración en MySQL. Esto simplifica el manejo de los datos y evita posibles errores al tener que actualizar manualmente las fechas en cada operación. tunnel rush