1

MySQL データベースのテーブルが編集されてからの時間を知る必要があります。PHPでこれを行う方法はありますか? 私が考えることができる唯一の方法は、更新時間を取得し、それを現在の時間と比較することです (これは少し面倒です)。

4

3 に答える 3

2
SELECT TIMEDIFF(CURRENT_TIME, UPDATE_TIME)
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'my_table'
于 2012-10-23T07:03:27.973 に答える
1

timestamp1つの解決策は、行が変更されるたびに自動的に更新されるフィールドを追加することです。次に、最終更新値を選択することにより、最終変更時刻を見つけることができます。

# Add a timestamp column:
ALTER TABLE [TABLENAME] add column `ts_update` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;

# Get the last update value:
SELECT MAX(ts_update) from [TABLENAME];
于 2012-10-22T22:58:57.927 に答える
0

SHOW TABLE STATUS標準の結果セットが返されないように見えるので、少し面倒です。サブクエリとして使用しようとしたすべての方法が失敗しました。プログラムでそれを理解する必要があるようです。

SHOW TABLE STATUS
WHERE name = 'target_table';

また、タイムゾーンが気になる場合は、別SELECT NOW()の方法で mysql サーバーの時間を取得してください。

注: これは、テーブル スキーマが更新された時刻のみを表示します。行が最後にいつ挿入/編集されたかを知りたい場合は、Amirshk が提案したようにタイムスタンプ列を追加する必要があります。

于 2012-10-22T23:03:34.917 に答える