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

MySQLで「TIMESTAMP DEFAULT CURRENT_TIMESTAMP」列を宣言した場合、値を挿入しないとどうなる?

TIMESTAMP型のデフォルト値CURRENT_TIMESTAMPの動作

MySQLで timestamp default CURRENT_TIMESTAMP のように列を宣言した場合、INSERT文でその列に何も値を指定しなくても、自動的に現在の日時(現在のタイムスタンプ)が挿入されます

実際にテーブルを作成して動作を確認してみましょう。

1. テーブルの作成

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable
(
    ArrivalDate timestamp default CURRENT_TIMESTAMP
);
Query OK, 0 rows affected (0.55 sec)

2. レコードの挿入

次に、INSERTコマンドを使ってレコードを挿入します。1件目は now() 関数で明示的に現在日時を指定し、2件目は値を一切指定せずに挿入します。

mysql> insert into DemoTable values(now());
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.13 sec)

3. 結果の確認

SELECT文ですべてのレコードを表示します。

mysql> select *from DemoTable;

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

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-09-01 14:08:47 |
| 2019-09-01 14:08:50 |
+---------------------+
2 rows in set (0.00 sec)

まとめ

この結果からわかるように、2件目のレコードは値を指定していませんが、CURRENT_TIMESTAMP がデフォルト値として機能し、INSERTを実行した時点の現在日時が自動的に記録されています。この仕組みを利用すれば、レコードの作成日時や登録日時を自動で管理できるため、ログテーブルや履歴管理などの場面で非常に便利です。

  1. Androidでプライベートブラウジングを使うとどうなる?仕組みとおすすめアプリを徹底解説

    ブログ概要:複数のメールアカウントへのログイン、ネットバンキング、オンラインショッピング、日常のネットサーフィンなど、プライベートブラウジングを利用する理由はさまざまです。この記事では、Androidデバイスでプライベートブラウザアプリを使い、匿名性の高い安全な閲覧を実現する方法をご紹介します。 最近、スマートフォンで航空券を検索していたら、次の瞬間には旅行会社からメッセージが届いた――こんな経験はありませんか?誰もこのようなプライバシー侵害は望んでいないはずです。不要なトラッキングを避けたいなら、シークレットモード(インコグニモ)でウェブブラウザを使うことが重要です。自分のオンライン活動を

  2. 死後のオンラインアカウントはどうなる?デジタル遺産の準備方法と主要サービスの対応を徹底解説

    人は誰しも、いつか必ず死を迎えます。これは揺るぎない人生の事実です。だからこそ多くの人は、生前のうちに財産を誰に託すのか、相続人を誰にするのかを決めておくのが賢明だと考えます。しかし、そうした準備の中で見落とされがちなのが「デジタルライフ」の存在です。パソコンやインターネットにまつわる生活は、今や私たちにとって欠かせないものとなっています。 メールアカウントを作成し、FacebookやTwitterでソーシャルアカウントを開設し、Instagramに写真を投稿する――多くの人がこうした活動にかなりの時間を費やしています。これらのアカウントには重要な情報が保存されています。しかし、自分が亡くなっ