mysql 检查一行的最后更新时间

标签 mysql events if-statement sql-update

我正在编写一个 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/

相关文章:

mysql - 如何在MySQL中使用合并功能?

javascript - 仅当两个输入都模糊时触发某些内容

c# - 如何检查鼠标移动事件中的键盘键状态

c# - 设置 myButton.Enabled = true 会触发单选按钮的 CheckedChanged 处理程序

mysql - 如何使用ibatis动态查询添加检查条件?

mysql - 如何在 mysql 中执行 UPDATE 时在多行中设置唯一值

mysql - MySQL 5 中的多列主键

JavaScript 单行 'if' 语句 - 最佳语法,这个替代方案?

java - 关于模块和返回语句的问题

python - 使用嵌套的 'for' 语句加速 Python 'if' 循环