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を組み合わせることで、レコードの作成日時や更新日時を手間なく自動管理できます。ログ管理や履歴データの記録など、さまざまな場面で活用できるので、ぜひ覚えておきましょう。
-
Javaを使ってMySQLテーブルにレコードを挿入する方法
はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable( Id int, Name varchar(30),&
-
【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がエンティテ