MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブルの作成日時・更新日時を確認する方法|SHOW TABLE STATUSの使い方

MySQLでは、create_timeupdate_timeの情報を参照することで、テーブルがいつ作成され、いつ最後に更新されたのかを正確に把握できます。本記事では、SHOWコマンドを使ってテーブルの作成日時・更新日時を確認する手順を、実際の実行例とともにわかりやすく解説します。

1. データベースを選択する

まず、対象となるデータベースを選択します。ここでは、すでに複数のテーブルが存在するデータベース「test3」を例に進めます。

mysql> use test3;
Database changed

2. データベース内のテーブル一覧を確認する

次に、以下のクエリを実行して、データベースtest3に含まれるすべてのテーブルを表示します。

mysql> show tables;

実行結果は以下の通りです。

+-------------------------+
| Tables_in_test3         |
+-------------------------+
| add6hour                |
| deletedemo              |
| differentdatetime       |
| fieldlessthan5chars     |
| lastrecordbeforelastone |
| mostrecentdatedemo      |
| nullcasedemo            |
| order                   |
| orderbydatethentimedemo |
| posts                   |
| productdemo             |
| radiansdemo             |
| siglequotesdemo         |
| studentinformation      |
| updatestringdemo        |
+-------------------------+
15 rows in set (0.00 sec)

3. SHOW TABLE STATUSで作成日時・更新日時を確認する

テーブルの作成日時や更新日時を調べるには、次のようにSHOW TABLE STATUSを実行します。このコマンドにより、各テーブルの詳細なステータス情報が一覧表示されます。

mysql> show table status;

出力結果には、テーブル名(Name)、ストレージエンジン(Engine)、行数(Rows)などの情報に加え、今回必要な情報である作成日時(Create_time)更新日時(Update_time)も含まれています。

+-------------------------+--------+------+---------------------+-------------+
| Name                    | Engine | Rows | Create_time         | Update_time |
+-------------------------+--------+------+---------------------+-------------+
| add6hour                | InnoDB |    0 | 2019-02-14 18:33:27 | NULL        |
| deletedemo              | InnoDB |    6 | 2019-02-13 19:20:04 | NULL        |
| differentdatetime       | InnoDB |    4 | 2019-02-14 10:26:28 | NULL        |
| fieldlessthan5chars     | InnoDB |    8 | 2019-02-13 19:03:05 | NULL        |
| lastrecordbeforelastone | InnoDB |    8 | 2019-02-14 17:31:59 | NULL        |
| mostrecentdatedemo      | InnoDB |    6 | 2019-02-14 17:15:53 | NULL        |
| nullcasedemo            | InnoDB |    6 | 2019-02-14 17:55:39 | NULL        |
| order                   | InnoDB |    8 | 2019-02-14 14:23:38 | NULL        |
| orderbydatethentimedemo | InnoDB |    4 | 2019-02-14 18:05:36 | NULL        |
| posts                   | InnoDB |    0 | 2019-02-13 18:19:06 | NULL        |
| productdemo             | InnoDB |    4 | 2019-02-13 20:06:36 | NULL        |
| radiansdemo             | InnoDB |    2 | 2019-02-14 14:33:24 | NULL        |
| siglequotesdemo         | InnoDB |    0 | 2019-02-14 10:41:23 | NULL        |
| studentinformation      | InnoDB |    0 | 2019-02-14 17:06:07 | NULL        |
| updatestringdemo        | InnoDB |    2 | 2019-02-13 18:25:59 | NULL        |
+-------------------------+--------+------+---------------------+-------------+
15 rows in set (0.72 sec)

※実際の出力には、Version、Row_format、Data_length、Collationなど、さらに多くのカラムが含まれます。ここでは見やすさのため、主要なカラムのみを抜粋しています。

4. 特定のテーブルだけを確認する方法

テーブル数が多い場合は、LIKE句を組み合わせることで、目的のテーブルだけを絞り込んで表示できます。

mysql> show table status like 'deletedemo';

5. information_schemaから取得する方法

information_schema.TABLESをSELECT文で参照する方法もあります。必要なカラムだけを柔軟に取り出せるのがメリットです。

SELECT TABLE_NAME, CREATE_TIME, UPDATE_TIME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'test3';

注意点:InnoDBではUpdate_timeがNULLになることがある

上記の実行例のように、InnoDBテーブルの場合、Update_timeがNULLと表示されることがあります。これは、InnoDBが更新内容をバッファプール経由で遅延書き込みする仕組みを持っているためで、更新日時が常にリアルタイムに反映されるとは限らないためです。一方、MyISAMテーブルでは最終更新日時が比較的正確に記録されます。運用時に日時情報を厳密に扱いたい場合は、この挙動の違いを理解しておくと安心です。

このように、SHOW TABLE STATUSコマンドやinformation_schemaを活用すれば、MySQL上のテーブルがいつ作成され、いつ更新されたのかを簡単に確認できます。データベースの保守管理やトラブルシューティングの際にぜひ役立ててください。

  1. MySQLで今日から7日前までの日付データを取得する方法

    特定の期間内の日付データを取得するには、DATE()関数とINTERVAL演算子を組み合わせて使用します。ここでは、今日から7日前までの間に該当するレコードを抽出する方法を解説します。select *from yourTableName where DATE(yourColumnName) > (NOW() - INTERVAL 7 DAY);注意: 現在の日付が「2019-06-02」であると仮定して説明します。まずはサンプル用のテーブルを作成しましょう。mysql> create table DemoTable     (  &

  2. MySQLで設定したインデックスを確認・表示する方法【SHOW INDEXコマンド】

    MySQLで作成済みのインデックスを確認したい場合は、SHOWコマンドを使用します。この記事では、実際にテーブルとインデックスを作成しながら、インデックス情報を表示する手順をわかりやすく解説します。インデックスを表示する基本構文テーブルに設定されたインデックスの一覧を取得するには、以下の構文を使用します。show index from テーブル名;サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。以下の例では、自動採番される主キー「Id」と、姓名を格納するカラムを持つテーブルを定義しています。mysql> create table DemoTable (