Создание события для периодического обновления данных
На этом шаге мы создадим событие MySQL, которое будет периодически обновлять таблицу. Сначала нам нужно создать базу данных и таблицу. Затем мы создадим событие для обновления таблицы каждую минуту.
Сначала подключимся к серверу MySQL с помощью клиента mysql
. Откройте терминал и выполните следующую команду:
mysql -u root -p
Введите пароль для пользователя root, когда это будет предложено.
Теперь создадим базу данных с именем test_db
:
CREATE DATABASE IF NOT EXISTS test_db;
Далее перейдем в базу данных test_db
:
USE test_db;
Теперь создадим таблицу с именем event_table
с двумя столбцами: id
(INT, первичный ключ, автоинкрементируемое значение) и value
(INT):
CREATE TABLE IF NOT EXISTS event_table (
id INT AUTO_INCREMENT PRIMARY KEY,
value INT
);
Вставим начальное значение в таблицу:
INSERT INTO event_table (value) VALUES (0);
Теперь создадим событие. Событие будет обновлять столбец value
в таблице event_table
каждую минуту. Выполните следующий SQL-запрос:
CREATE EVENT IF NOT EXISTS update_event
ON SCHEDULE EVERY 1 MINUTE
DO
UPDATE event_table SET value = value + 1;
Этот запрос создает событие с именем update_event
. Клаусел ON SCHEDULE EVERY 1 MINUTE
указывает, что событие должно запускаться каждую минуту. Клаусел DO
указывает SQL-запрос, который должен быть выполнен при запуске события, а именно, увеличивает значение в столбце value
на 1.
Чтобы проверить, было ли создано событие, выполните следующий SQL-запрос:
SHOW EVENTS FROM test_db;
Вы должны увидеть вывод, похожий на следующий:
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
| 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)
Это подтверждает, что событие было создано и включено.
Теперь выйдите из клиента MySQL:
exit
Теперь событие будет запускаться каждую минуту, обновляя столбец value
в таблице event_table
. На следующем шаге мы проверим статус выполнения события.