如何更新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来执行语句。
答
嗨,你可以使用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());
希望它会为你工作
嗯..现在在看看在这之前..不使用事件.. – user718359
我使用的Web主机不支持事件..他们建议作为使用cron的工作.. – user718359
请参阅http://adminschoice.com/crontab-quick-reference – imm