14

私は MySQL を使用しており、データベース内の任意のテーブルが最後に変更された日時を取得したいと考えています。各テーブルには自動更新 '*_modified' タイムスタンプがあるため、これを使用できます (* はプレフィックスです)。

これの目的は、最後のデータベース バックアップの日時以降にデータが変更されたかどうかを確認することです。

DESCRIBE または SHOW を使用してこれを行う簡単な方法はありますか? 検索して実験しましたが、まだ何も見つかりませんでした。

助けてくれてありがとう。

4

4 に答える 4

17
SELECT update_time
FROM   information_schema.tables
WHERE  table_schema = 'dbName'
       AND table_name = 'tableName'
于 2012-11-15T17:33:48.277 に答える
3

http://mysqladministrators.blogspot.it/2012/02/get-database-size.htmlからこのメソッドを見つけました

私はMySqlでそれほど準備ができていないので、それがあなたを助けることができるかどうかはわかりません

データベースのサイズ、空き容量、最終更新を取得する

テーブル TABLES の INFORMATION_SCHEMA データベースからクエリ ブラウザまたは CLI にクエリを実行するだけで、現在のデータベース サイズを取得します。

SELECT table_schema "Data Base Name", 
sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema ;

データベースの空き容量を取得する

SELECT table_schema "Data Base Name", 
sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB", 
sum( data_free )/ 1024 / 1024 "Free Space in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema;

データベースの最終更新を更新時間順、次に作成時間順で取得します。

SELECT MAX(UPDATE_TIME), MAX(CREATE_TIME), TABLE_SCHEMA 
FROM `TABLES` 
GROUP BY TABLE_SCHEMA 
ORDER BY 1, 2;
于 2015-04-18T15:43:19.777 に答える
1

受け入れられた答えは素晴らしいですが、新人にすぐにわからない場合のより良い形式は次のようになると思います。

SELECT table_name, update_time
FROM   information_schema.tables
WHERE  table_schema = 'myDBName'
order by update_time DESC

そのため、どのテーブルが変更されたかを常に把握しているわけではありません。これには、最近更新されたテーブルを表示することで、アクティビティが何であったかの手がかりが得られるという利点があります。

于 2017-11-04T12:34:46.720 に答える