1

私はウェブアプリケーションを書いています。そのデータベースには、いくつかの期日を保持するテーブルがあります。別のテーブルには2つの列があります:namestatestateこれらの期日のいずれかが到着したときに列が自動的に更新されるようにしたい(更新された値は、プログラムのロジックに従って計算されます)。

この機能を実装するにはどうすればよいですか?サーバーマシンで別のプログラム(Webアプリケーションとは関係なく)を実行してデータベースの期日を確認し、テーブルを更新するのは一般的ですか、それとも他の方法がありますか?

4

2 に答える 2

1

一部のデータベースはスケジュールされたタスクをサポートしていますが、ほとんどのDBAはcron、作業を実行するタスクをスケジュールするために使用します。

同じことをすることをお勧めします。

(彼のコメントを寄せてくれたcatcallに感謝します)

于 2012-12-18T23:48:34.123 に答える
0
DELIMITER $$

CREATE EVENT 'DBNAME'.'EVENTNAME'

ON SCHEDULE
    EVERY 1 DAY

ON COMPLETION PRESERVE
ENABLE

DO
    BEGIN
     /*sql statements*/
     UPDATE tableName SET state = 'newState' where NOW() = (SELECT * FROM tableWithDates);
    END

DELIMITER ;

これは、MySqlでイベントを作成するコードです。Mysqlイベントを使用してテーブルのデータを更新できます。このイベントは1日ごとに実行され、SQLクエリを実行します。MySqlイベントはバックグラウンドでも実行されます。

于 2013-08-25T17:35:00.153 に答える