我想在存储日期20天后自动更新我的sql表数据

时间:2018-01-23 16:21:48

标签: php mysql sql database

enter image description here enter image description here

我在My SQl中有这个表。我想更改列" Status"来自'待定'到了'Defaulter'从" rec_date" 20天后列自动。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

创建一个proc并按计划运行

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

答案 2 :(得分:0)

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