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を実行した時点の現在日時が自動的に記録されています。この仕組みを利用すれば、レコードの作成日時や登録日時を自動で管理できるため、ログテーブルや履歴管理などの場面で非常に便利です。
-
Androidでプライベートブラウジングを使うとどうなる?仕組みとおすすめアプリを徹底解説
ブログ概要:複数のメールアカウントへのログイン、ネットバンキング、オンラインショッピング、日常のネットサーフィンなど、プライベートブラウジングを利用する理由はさまざまです。この記事では、Androidデバイスでプライベートブラウザアプリを使い、匿名性の高い安全な閲覧を実現する方法をご紹介します。 最近、スマートフォンで航空券を検索していたら、次の瞬間には旅行会社からメッセージが届いた――こんな経験はありませんか?誰もこのようなプライバシー侵害は望んでいないはずです。不要なトラッキングを避けたいなら、シークレットモード(インコグニモ)でウェブブラウザを使うことが重要です。自分のオンライン活動を
-
死後のオンラインアカウントはどうなる?デジタル遺産の準備方法と主要サービスの対応を徹底解説
人は誰しも、いつか必ず死を迎えます。これは揺るぎない人生の事実です。だからこそ多くの人は、生前のうちに財産を誰に託すのか、相続人を誰にするのかを決めておくのが賢明だと考えます。しかし、そうした準備の中で見落とされがちなのが「デジタルライフ」の存在です。パソコンやインターネットにまつわる生活は、今や私たちにとって欠かせないものとなっています。 メールアカウントを作成し、FacebookやTwitterでソーシャルアカウントを開設し、Instagramに写真を投稿する――多くの人がこうした活動にかなりの時間を費やしています。これらのアカウントには重要な情報が保存されています。しかし、自分が亡くなっ