簡體   English   中英

如何自動更新MYSQL數據庫中的字段數據

[英]How to update field data in MYSQL database automatically

我有一個mysql數據庫,其中包含幾個字段,包括:

enter_date(這是一個時間戳字段 - 即2011-09-13 21:04:42)狀態(默認為活動)period_allowed(這是一個天數,即5或20或30等)

現在我需要做的是在period_allowed(從enter_date字段開始)之后,狀態是從'active'變為'expired'。

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

然后在9月15日,狀態將自動從“活動”更改為“已過期”

想要獲得最佳和最簡單的方法嗎?

謝謝

PS看着設置一個cron工作..但編碼實現這一目標?

您可以創建一個存儲過程來執行此更新SQL,並創建一個MySQL事件(如果使用最新版本的MySQL),它定期運行該存儲過程。 否則,使用mysql命令行客戶端創建一個調用存儲過程(或只運行更新sql)的cron作業。

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

請參閱MySQL 5.1 Create Event文檔,它有一個簡單的示例,用於創建運行update語句的事件。 或者,要創建一個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());

希望它能為你效勞

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM