【问题标题】:I want to automatically update my sql table data after 20 days from stored date我想在存储日期后 20 天后自动更新我的 sql 表数据
【发布时间】:2018-07-02 13:10:27
【问题描述】:

enter image description here

我的 SQl 中有这张表。我想在 20 天后从“rec_date”列自动将“状态”列从“待定”更改为“违约者”。

我该怎么做?

【问题讨论】:

标签: php mysql sql database


【解决方案1】:

您可以使用在 20 天后启动的触发器和事件调度程序

【讨论】:

    【解决方案2】:

    让我们用通用的方式回答它,以一种简单的方式创建一个cronjob。

    1. 创建 .php 文件(ex.php)
    2. 做任何逻辑,你想在这里像从数据库中选择 "rec_date" > 20 的记录
    3. 更新数据库状态
    4. 运行 php 文件,只需从终端类型: php ex.php
    5. 您需要在 cronjob 中(在服务器上或本地)运行此 php ex.php,并指定时间,例如每 5 分钟运行一次 ex.php 文件

    【讨论】:

      【解决方案3】:

      创建一个过程并按计划运行它

      CREATE PROC ProcNameHere
      AS 
      
      BEGIN   
      
      DECLARE @datetime DATETIME
      SET @datetime = CURDATE()
      
      UPDATE tablename 
      SET [Status] = 'Defaulter'
      WHERE rec_date < DATEADD(DAY, -20,@datetime) 
             AND [Status] <> 'Defaulter'
      
             END
      

      【讨论】:

      • 这是无效的 MySQL 代码.. MySQL 不支持函数 GETDATE() 和括号
      • 用 CURDATE() 替换它
      猜你喜欢
      • 1970-01-01
      • 2018-06-17
      • 2011-02-09
      • 2014-03-02
      • 2018-07-03
      • 2021-02-27
      • 2015-10-29
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多