Crear un evento para actualizar datos periódicamente
En este paso, crearemos un evento de MySQL que actualice una tabla periódicamente. Primero, necesitamos crear una base de datos y una tabla. Luego, crearemos el evento para actualizar la tabla cada minuto.
Primero, conectémonos al servidor MySQL utilizando el cliente mysql
. Abra una terminal y ejecute el siguiente comando:
mysql -u root -p
Ingrese la contraseña de root cuando se le solicite.
Ahora, creemos una base de datos llamada test_db
:
CREATE DATABASE IF NOT EXISTS test_db;
A continuación, cambiemos a la base de datos test_db
:
USE test_db;
Ahora, creemos una tabla llamada event_table
con dos columnas: id
(INT, clave primaria, autoincremental) y value
(INT):
CREATE TABLE IF NOT EXISTS event_table (
id INT AUTO_INCREMENT PRIMARY KEY,
value INT
);
Insertemos un valor inicial en la tabla:
INSERT INTO event_table (value) VALUES (0);
Ahora, creemos el evento. El evento actualizará la columna value
en la tabla event_table
cada minuto. Ejecute la siguiente declaración SQL:
CREATE EVENT IF NOT EXISTS update_event
ON SCHEDULE EVERY 1 MINUTE
DO
UPDATE event_table SET value = value + 1;
Esta declaración crea un evento llamado update_event
. La cláusula ON SCHEDULE EVERY 1 MINUTE
especifica que el evento debe ejecutarse cada minuto. La cláusula DO
especifica la declaración SQL a ejecutar cuando el evento se ejecuta, que incrementa la columna value
en 1.
Para verificar si el evento se ha creado, ejecute la siguiente consulta SQL:
SHOW EVENTS FROM test_db;
Debería ver una salida similar a esta:
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at | Interval_value | Interval_field | Starts | Ends | Status | Originator | character_set_client | collation_connection | db_collation |
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
| test_db | update_event | root@% | SYSTEM | RECURRING | NULL | 1 | MINUTE | 2024-10-27 14:30:00 | NULL | ENABLED | 1 | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_0900_ai_ci |
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
1 row in set (0.00 sec)
Esto confirma que el evento se ha creado y está habilitado.
Ahora, salga del cliente MySQL:
exit
El evento se ejecutará ahora cada minuto, actualizando la columna value
en la tabla event_table
. En el siguiente paso, verificaremos el estado de ejecución del evento.