如何每小时更新第二个表中一个表的值?

时间:2019-01-31 21:29:36

标签: mysql phpmyadmin

我的网站是学校网站。

老师每天从“学生”表中选择一名随机学生,然后在“随机数”表中对其进行更新。

现在,我正在尝试其他方法来简化此操作。

我希望表格“随机数”在没有老师的情况下每小时自动更新。

这意味着“学生”表中的随机学生每小时都会在“随机数”表中进行更新。

有人知道该怎么做吗? 非常感谢!

2 个答案:

答案 0 :(得分:0)

这是在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

如果您在使用https://dev.mysql.com/doc/refman/5.7/en/events-configuration.html时遇到任何问题,可以在mysql文档中找到一些禁用事件调度程序的进一步信息

答案 1 :(得分:-1)

如果您有权访问主机,则可以使用cron对执行任务的查询进行编程(假设您使用的是Linux)。查询应类似于:

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

您可以在控制台crontab -e中创建发出cron任务,并添加如下代码:

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

这将每小时执行一次查询。如果您希望每2个小时或更长时间执行一次,只需将*/1替换为所需的时间。如果您使用的是Windows,则还可以使用“任务计划程序”运行sql。