3

挿入したデータベーステーブルに関係なく、データベースに最後に書き込んだ時刻(タイムスタンプ)はいつ確認できますか?MySQL:データベースへの最後の挿入のタイムスタンプを取得するには

+0

INSERTとUPDATEとDELETEを区別する必要がありますか?また、特定のユーザーID、またはデータベースへの最後の更新によって最後の更新を求めていますか?実際にはそれほど大きな違いはありません。あなたが求めている情報は、あなたが「更新」や「具体的に挿入する」を問わず、利用可能になることはまずありません。 –

+0

ありがとうジョナサン。私はINSERT(データベースへの後者の任意の並べ替え)のみに興味があります。 – user690182

+0

私の他の答えは完璧です、私の最初の受け入れを受け入れて私の秒を受け入れてください。ありがとう! –

答えて

-1

回答ではありません(受け入れられたとして削除することはできません)。この回答の下のコメントを参照してください。

update_timeは、カラムが更新されていないため、create_timeのために使用できませんでした。 update_time(変更された場合)の場合、update_timeが更新された場合、これは正しく設定されている可能性があります。

select table_schema,table_name,max_time from information_schema.tables t1 JOIN 
(select MAX(t2.create_time) AS max_time FROM 
    information_schema.tables t2 where 
    table_schema ='test') as t3 
on t1.create_time = t3.max_time; 
+0

こんにちはマイケルは、初めて初めての作業でした。それは私に時代遅れの情報を与えます。どういう考えがありますか? – user690182

+0

データベーステーブルが作成された最後の時刻です –

+0

はい。私はこの回答を削除することはできません。 1つの正解は、すべてのテーブル名を取得し、(フィールドの名前が同じであると仮定して)、各テーブルから最大値を取得し、それらの最大値の最大値を取得します。だからかなり単純なSQLが、私は瞬間にそれを書く時間がありません。 –

0

テーブルの変更日のフィールドを追加し、最後の行を決定するためにLAST_INSERT_ID()を使用します(すぐに実行する場合)。それ以外の場合は、テーブルの変更されたフィールドから最新の日付を取得します。

+0

-1いいえ、OPは1つではなく、すべてのテーブルを指定します。ごめんなさい! –

0

これは基本的にはのログはすべて約です。 CLI

  1. は今SET GLOBAL general_log = 'ON';

を実行SET GLOBAL log_output = 'TABLE';

  • を実行し、テーブルgeneral_logmysql内部のデータベースには、データベース上のようなすべてのアクションを記録します。 phpMyadminなどを使用してこれらを表示します。結果から非常に効果的にクエリを実行できます。

  • 3

    はちょうどこのSQLを使用します。SHOW TABLE STATUS;UPDATE_TIME欄をご確認ください。

    +0

    これはInnoDBでは正しく動作しません。[manual](http://dev.mysql.com/doc/refman/5.7/en/show-table-status.html)を参照してください。 –

    関連する問題