PHP+MYSQLでテーブルの変更時間をチェックして、10分経っていたら、データを入れ直す ということをしようと考えています。


そこで、
SHOW TABLE STATUS
が使えるのではないかと思ったのですが、いまいち使い方がわかりません。

SHOW TABLE STATUS WHERE Name = 't_aaa'
として出てきた結果のUpdate_timeと今を比較すればいいのかなとも思うのですが、どこにSELECTを入れていいものか見当がつきません。

どうすればいいのでしょうか?
できれば、「Update_timeと今を比較して、10分経っているか」のチェック方法もわかればありがたいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/02/14 21:47:36
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

SHOW 構文と組み合わせたければ一旦データを取ってきた上で PHP 上で比較するしかないですね。


MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.2.2.2 DATETIME、DATE、TIMESTAMP 型

テーブルに timestamp 型のカラムを追加した方が希望の要件が満たせると思います。

INSERT,UPDATE 時に現在時刻で自動的に更新されますので更新日時として扱えます。

SELECT * FROM table
  WHERE update_time < now() - INTERVAL 10 MINUTE;

で、入れなおすべきレコードが選択できます。

id:dingding

なるほど!その手がいいですね。

ありがとうございます。

2007/02/14 21:47:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません