Как мне обновлять значение из одной таблицы во второй таблице каждый час? - PullRequest
0 голосов
/ 01 февраля 2019

Мой сайт - это школьный сайт.

Учитель каждый день выбирает случайного ученика из таблицы «учеников» и обновляет его в таблице «случайных чисел».

Теперь я пытаюсь сделать что-то еще, чтобы упростить процесс.

Я хочу, чтобы таблица 'случайные числа' обновлялась каждый час без учителя, автоматически.

это означает, что каждый час случайный ученик из таблицы «учеников» будет обновляться в таблице «случайных чисел».

Кто-нибудь знает, как это сделать?Большое спасибо !!

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вот как это делается в MySQL.

 CREATE EVENT update_random
    ON SCHEDULE EVERY 1 HOUR
    COMMENT 'Updates Random Table with Student from Student Table every hour'
    DO 
    BEGIN
     UPDATE TABLE random SET student = (SELECT student FROM student ORDER BY RAND() LIMIT 1);
    END

Существует некоторая дополнительная информация, позволяющая отключить планировщик событий в документах mysql, если у вас возникли проблемы с этим рабочим https://dev.mysql.com/doc/refman/5.7/en/events-configuration.html

0 голосов
/ 01 февраля 2019

Если у вас есть доступ к хосту, вы можете использовать cron для программирования запроса, который выполняет задачу (при условии, что вы используете Linux).Запрос должен выглядеть примерно так:

set @student = select name from student order by rand() limit 1;
update table randoms set student=@student;

И вы можете создать задачу cron, выдающую в консоли crontab -e и добавив строку, подобную этой:

0 */1 * * * mysql -u<user> -p<password> -D <database> -e "<sql command in one line>"

Это выполнит вашзапрос каждый час.Если вы предпочитаете выполнять его каждые 2 часа или более, просто замените */1 на желаемый период времени.Если вы работаете в Windows, вы также можете запустить SQL с помощью планировщика заданий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...