如何更新MYSQL数据库字段数据自动

问题描述:

我对此有几个字段,包括表MySQL数据库:如何更新MYSQL数据库字段数据自动

enter_date(这是一个时间戳字段 - 即2011-09-13 21点04分42秒) 状态(默认为有效) period_allowed(这是数天即5或20或30等)

现在我需要做的是在period_allowed后(从enter_date场首发)的状态是从“活动”变为“过期”。

即 如果输入日期:2011-09-10- 12:00:00 period_allowed:5

然后在9月15日的状态是从 '积极的' 自动更改为 '已过期'

想法为最佳和最简单的方法来做到这一点?

谢谢

P.S.看着建立一个cron工作..但编码来实现这一目标?

您可以创建一个存储过程来执行此更新SQL,并创建一个定期运行该存储过程的MySQL事件(如果使用最新版本的MySQL)。否则,使用mysql命令行客户端创建一个调用存储过程的cron作业(或仅运行update sql)。

UPDATE my_table SET status='expired' WHERE NOW() >= ADDDATE(enter_date, period_allowed) 

请参阅MySQL 5.1 Create Event文档,它有一个创建运行更新语句的事件的简单示例。或者,要创建一个cron作业,可以在crontab中创建一个条目,使用-e标志调用mysql来执行语句。

+0

嗯..现在在看看在这之前..不使用事件.. – user718359

+0

我使用的Web主机不支持事件..他们建议作为使用cron的工作.. – user718359

+0

请参阅http://adminschoice.com/crontab-quick-reference – imm

我还没有使用它,但Mysql的活动似乎是做到这一点的方式,

Mysql Events

+0

谢谢你现在看看活动.. – user718359

嗨,你可以使用MySQL事件或更新后的1天或删除数据或更新数据2天我准备一个PHP脚本,那就是:

$insertquery="CREATE EVENT JOY // joy is event name 
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 MINUTE //after 3 minute the event will run automatically 
    DO 
     BEGIN 
     insert into tbl2 (col1, col2, col3) select col1,col2,col3 from course_entry where username = ''; //this is mysql job event should do copy data from tbl1 to tbl2 

delete from course_entry where username = '';// 2nd mysql job it will delete tbl1 data after insert process is done 
     END"; 

mysql_query($insertquery) or die (mysql_error()); 

希望它会为你工作