MySQL データベースのテーブルが編集されてからの時間を知る必要があります。PHPでこれを行う方法はありますか? 私が考えることができる唯一の方法は、更新時間を取得し、それを現在の時間と比較することです (これは少し面倒です)。
質問する
1020 次
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
timestamp
1つの解決策は、行が変更されるたびに自動的に更新されるフィールドを追加することです。次に、最終更新値を選択することにより、最終変更時刻を見つけることができます。
# 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 に答える