2012-02-23 13 views
0

特定の時間までにMySQLデータベースに新しいレコードが挿入されていない場合、どのように電子メールアラートを送信するように設定しますか?新しいデータベースレコードがない場合の毎日アラート

私は、idフィールドとdatetimeフィールドで構成される単純なテーブルを持っています。理想的には、レコードが毎日午前10時までにデータベースに挿入された場合、電子メールアラートを受信したいと考えています。これはすべて実現可能ですか?

ありがとうございます。

+0

[MySQL 5.1からの電子メールの送信方法](http://stackoverflow.com/questions/387483/how-to-send-email-from-mysql-5-1) –

+0

@Click - その他の情報電子メールを送信するだけではありません。それは正確な複製ではありません。 – APC

答えて

0

を通過します。 Find out more

このイベントは、最後にチェックした後にレコードが受信されたかどうかを確認するクエリを実行します。 the query proposed by Teezのようなもので十分です。

しかし、停止を可能にするために、この中にもう少しスマートを追加したいかもしれません。データベースが10.00.01で停止し、クエリが10:05で実行された場合、10:04に受信したメッセージが結果を破損しないようにします(または、ビジネスルールに依存しますか? 09:59に挿入されましたが、データベースがダウンしていました...)

とにかく、クエリの数がゼロの場合は、アラートを送信します。これを行うためのAPIを提供するMySQL Messagesという名前のプロジェクトがあります。 Check it out

ここにいくつかの呼び出しがあるので、BEGINENDとのステートメントをブックエンドする必要があります。

このルートを終了する場合は、イベントスケジューラがオンになっていることを確認してください。 Find out more

+0

ありがとう!これは基本的に私がまとめなければならないすべての部分を私に提供する非常に徹底的な返答です。 –

1

を入力して、1日間隔のgettngレコードのdatetimeフィールドのSQLクエリで設定します。

いいえレコード(count=0)メールを送信するためのコードを実行する必要があります。

クエリは以下のようになりウィル:

SELECT count(id) 
FROM mytable 
WHERE datetime_field_date BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE() 

必要な変更を行ってください。

+0

CronまたはWindowsの同等のWindowsタスクスケジューラです。 – APC

0

あなたは、ex

0 10 * * * Your job over here 

0の場合はcronジョブ

を設定することができます - 分

10 - 時間

ので、毎日午前10時のcronが使用するジョブを実行します。その他の参考のために

は、あなたが(十時00分01秒と言う)一日一回を実行し、イベントを作成する必要があり、あなたは完全にデータベース内でこれを維持したいと仮定すると、このサイトhttp://www.adminschoice.com/crontab-quick-reference

関連する問題