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

MySQLでTIMESTAMP型のカラムを持つテーブルを作成する方法

MySQLでは、TIMESTAMPキーワードを使用することで、日時を自動的に記録するカラムを持つテーブルを簡単に作成できます。TIMESTAMP型に「DEFAULT CURRENT_TIMESTAMP」を指定すると、レコード挿入時の現在日時が自動的に設定されるため、作成日時や更新日時の管理に非常に便利です。

1. TIMESTAMPカラムを持つテーブルを作成する

まず、CREATE TABLE文でTIMESTAMP型のカラムを含むテーブルを作成します。

mysql> create table demo50
-> (
-> id int not null auto_increment primary key,
-> start_date timestamp default current_timestamp not null,
-> end_date timestamp default current_timestamp not null
-> );
Query OK, 0 rows affected (1.35 sec)

この例では、以下の3つのカラムを持つテーブル「demo50」を作成しています。

  • id:自動採番される主キー(AUTO_INCREMENT)
  • start_date:デフォルト値として現在時刻が設定されるTIMESTAMP型
  • end_date:同様に現在時刻がデフォルトで設定されるTIMESTAMP型

2. レコードを挿入する

次に、INSERTコマンドを使ってテーブルにレコードを追加します。カラムを指定しない場合は、両方のTIMESTAMPカラムに現在時刻が自動的に登録されます。

mysql> insert into demo50 values();
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo50(end_date) values('2020-12-21');
Query OK, 1 row affected (0.07 sec)

mysql> insert into demo50(start_date) values('2020-01-01');
Query OK, 1 row affected (0.14 sec)

2番目と3番目のINSERT文のように、片方のカラムだけに値を指定した場合、指定しなかった側にはDEFAULT CURRENT_TIMESTAMPによって実行時の日時が自動的に代入されます。

3. SELECT文でデータを確認する

SELECT文を使って、テーブルに保存されたレコードを表示してみましょう。

mysql> select *from demo50;

実行すると、次のような結果が出力されます。

+----+---------------------+---------------------+
| id | start_date          | end_date            |
+----+---------------------+---------------------+
|  1 | 2020-11-04 20:54:31 | 2020-11-04 20:54:31 |
|  2 | 2020-11-04 20:54:53 | 2020-12-21 00:00:00 |
|  3 | 2020-01-01 00:00:00 | 2020-11-04 20:55:04 |
+----+---------------------+---------------------+
3 rows in set (0.00 sec)

ポイントまとめ

  • TIMESTAMP型は「YYYY-MM-DD HH:MM:SS」形式で日時を格納します。
  • DEFAULT CURRENT_TIMESTAMPを指定すると、INSERT時に明示的に値を渡さなくても現在日時が自動的に設定されます。
  • TIMESTAMP型の有効範囲は「1970-01-01 00:00:01」UTCから「2038-01-19 03:14:07」UTCまでです。それ以降の日時を扱う場合はDATETIME型の使用を検討しましょう。

このように、TIMESTAMP型とCURRENT_TIMESTAMPを組み合わせることで、レコードの作成日時や更新日時を手間なく自動管理できます。ログ管理や履歴データの記録など、さまざまな場面で活用できるので、ぜひ覚えておきましょう。

  1. Javaを使ってMySQLテーブルにレコードを挿入する方法

    はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable(   Id int,   Name varchar(30),&

  2. 【Spring Boot】HibernateでMySQLのテーブルを自動作成する方法

    Spring BootとHibernateを組み合わせると、エンティティクラスから自動的にMySQLのテーブルを作成できます。本記事では、application.propertiesの設定だけでテーブルを自動生成する手順を、実際のコード例とともにわかりやすく解説します。1. application.propertiesの設定テーブルを自動作成するには、まずapplication.propertiesに以下の1行を追加します。spring.jpa.hibernate.ddl-auto=updateddl-auto=updateを指定すると、アプリケーションの起動時にHibernateがエンティテ