2016-10-05 5 views
3

データベースへの変更(更新、変更など)を最後に行う必要があります 次のクエリを実行しますが、すべてのテーブルに対してnullを返します。 何が間違っていますか?データベースの最終更新を取得する

SELECT 
    update_time 
FROM 
    information_schema.tables 
WHERE 
    table_schema = 'myschema' 
+0

[InnoDBテーブルが最後に変更された時期を知る方法は?](http://stackoverflow.com/questions/2785429/how-can-i-determine-when-an-innodb-table-was最後に変更された) – LuFFy

答えて

5

information_schema.tables上のMySQLのドキュメントは(強調追加)言うように:

MySQLの5.7.2に始まり、UPDATE_TIMEが最後のUPDATE、INSERTのタイムスタンプ値を表示するか、InnoDBの上で行わDELETEパーティション化されていない表。 以前は、UPDATE_TIMEにInnoDBテーブルのNULL値が表示されていました。 MVCCの場合、タイムスタンプ値は最後の更新時間とみなされるCOMMIT時間を反映します。タイムスタンプは、サーバが再起動されたとき、またはテーブルがInnoDBデータ・ディクショナリ・キャッシュから追い出されたときには保持されません。

UPDATE_TIME列はまた、MySQLの5.7.8以降で分配 InnoDBテーブルは、この情報を示しています。 以前は、このカラムは でした。おそらくあなたはInnoDBのテーブルとMySQLのバージョンを使用している(バグ#17299181、バグ#69990)

は、マニュアルに記載さよりも前です。

関連する問題