我正在编写一个 MySQL 数据库,如果可能的话,我希望通过事件在 MySQL 数据库本身中完成标题。我正在通过用 VB.net 编写的 Windows 服务更新数据库,并且不想通过单独的“服务器控制”类型程序执行以下操作。
基本上,我已将以下内容写入数据库,但它并不能完全满足我的要求:
Create Event MachineOffline
On
SCHEDULE Every 2 Minute
Do
UPDATE maindb.monitortable SET Online='1';
我希望它能说出如下内容:
Create Event MachineOffline
On
SCHEDULE Every 2 Minute
Do
IF **RowX updated < 2 minutes ago** then
UPDATE Database.Table SET Online='0' where RowX(ID);
我不知道如何实现这一点,因此我向每个人提出问题。我没有创造的欲望
最佳答案
如果您为 Database.Table 提供一个额外的列,例如 last_updated 时间戳
,则可以像这样更新它:
update Database.Table
set online=0, last_updated = now()
where last_updated <= now() - interval 2 minute
and online=1
关于mysql 检查一行的最后更新时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29603556/