当前位置: 首页 > 面试题库 >

如何在时间戳字段过期后自动更新MySQL

李俊雅
2023-03-14
问题内容

如何在到期时间戳后自动执行MySQL更新或插入?

因此,可以说时间戳是2013-06-30 20:10:00,我希望在经过该日期和时间后自动更新MySQL DB,因此今天之后2013-06-03 20:10:00

我想更新我的商品,但是我的网站没有打开浏览器,所以我想我需要某种服务器触发器吗?我怎么做?非常感谢

我有以下查询每1秒执行一次,它不起作用:

CREATE EVENT e_second
    ON SCHEDULE
      EVERY 1 SECOND
    DO
UPDATE online_auctions.auction_status
   SET auction_status = 'ENDED' WHERE TIMESTAMP(auction_end_date) < (select now());

问题答案:

使用可以用于

  1. MySQL事件(恕我直言最好的候选人)
  2. cron作业或Windows Task Scheduler(如果您在Windows平台上)

如果您选择选项1,则需要创建一个事件

CREATE EVENT myevent 
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO 
UPDATE myschema.mytable 
   SET mycol = mycol + 1;

使用SHOW PROCESSLIST检查事件调度启用。如果是,ON您应该看到用户“ event_scheduler”的进程“
Daemon”。使用SET GLOBAL event_scheduler = ON;使调度,如果它目前尚未启用。有关在此处配置事件调度程序的更多信息。

如果要查看架构中的事件

SHOW EVENTS;

UPDATE 您的更新语句应如下所示

UPDATE online_auctions 
   SET auction_status = 'ENDED' 
 WHERE auction_end_date < NOW();

这是 SQLFiddle 演示



 类似资料:
  • 问题内容: 如果我在类型表中具有一列并且具有默认值:CURRENT_TIMESTAMP如果我更新同一行中 任何 其他列的值,此列是否会更新为当前时间戳? 似乎没有,但是我不确定这是否应该发生。 我不明白这是什么意思(来自MySQL文档): 如果该列是自动更新的,则当该行中任何其他列的值从其当前值更改时,它将自动更新为当前时间戳。如果所有其他列均设置为其当前值,则该列保持不变。为防止当其他列更改时该

  • 互联网上有很多关于转换MySQL时间戳的东西,它是如何工作的等等。但我需要的是相反的:知道MySQL在时间戳字段中将每个日期时间数据存储为UTC,我只想直接检索存储的UTC值,而不让MySQL在日期时间与系统/服务器/连接时区之间混淆。 你看,我们已经建立了一个简单的节点。js feeder从几个第三方MySQL数据库读取数据(因此我无法更改它们的时区设置),并将收集的数据保存到Elasticse

  • 问题内容: 我想在实体对象上添加一个Date / DateTime / Timestamp字段,该字段将在创建/持久化实体并将其设置为“现在”时自动创建,永远不再更新。 其他用例包括的字段始终会更新为包含实体的最后修改日期。 我以前是在mysql模式中达到这种要求的。 在Play中做到这一点的最佳方法是什么!/ JPA? 问题答案: 您可以使用一个代码片段来实现所需的功能。看一看:

  • 系统支持自动写入创建和更新的时间戳字段(默认关闭),有两种方式配置支持。 第一种方式是全局开启,在数据库配置文件中进行设置: // 开启自动写入时间戳字段 'auto_timestamp' => true, 第二种是在需要的模型类里面单独开启: <?php namespace app\index\model; use think\Model; class User extends Model

  • 问题内容: 在模型中,我有一个这样的字段:mydate = models.DateField() 现在,一个javascript图形函数需要unix时间戳,例如“ 1196550000000”,如何返回mydate输入的unix时间戳。 问题答案: 我知道不久前接受了另一个答案,但是这个问题在Google的搜索结果中显得很高,因此,我将添加另一个答案。 如果你在模板级别工作,则可以在过滤器中使用参

  • 问题内容: 我的实体类: 我想在创建或修改对象时将CREATED和MODIFIED字段自动互补。CREATED和MODIFIED字段应为TIMESTAMP类型。 我该如何实现? 问题答案: 您只要在创建实例时就创建一个,然后在实体更新时就更新该字段: 不要为这些方法中的任何一种提供设置器,仅提供获取器。