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

MySQLで現在時刻をデフォルト値とする新しい列を追加する方法

MySQLでは、DEFAULT CURRENT_TIMESTAMP句を使用することで、新しい列に対して現在の日時を自動的にデフォルト値として設定できます。この方法を使えば、レコードを挿入する際に明示的に日時を指定しなくても、その瞬間の時刻が自動的に記録されるため、作成日時や締め切り日時の管理に非常に便利です。

基本構文

以下が基本的な構文です。

CREATE TABLE yourTableName
(
    yourColumnName1 dataType1,
    yourColumnName timestamp DEFAULT CURRENT_TIMESTAMP
);

実際にテーブルを作成してみる

まずはサンプル用のテーブルを作成しましょう。ここでは「DueDate(期限日)」という列に現在時刻をデフォルト値として設定しています。

mysql> create table DemoTable
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> DueDate timestamp default current_timestamp
    -> );
Query OK, 0 rows affected (0.86 sec)

レコードの挿入

次に、INSERTコマンドを使ってレコードを挿入します。ポイントは、DueDateに値を指定せずに空のINSERTを実行することです。すると、デフォルト値として現在の日時が自動的に登録されます。

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

結果の確認

SELECT文ですべてのレコードを表示して確認してみましょう。

mysql> select *from DemoTable;

出力結果

+----+---------------------+
| Id | DueDate             |
+----+---------------------+
|  1 | 2019-06-08 21:35:58 |
+----+---------------------+
1 row in set (0.00 sec)

補足:TIMESTAMP型とDATETIME型の違い

なお、MySQLではTIMESTAMP型以外にもDATETIME型に対してCURRENT_TIMESTAMPをデフォルト値として設定できます。TIMESTAMP型はタイムゾーンの影響を受けてUTCで保存される一方、DATETIME型はタイムゾーンに依存しないため、用途に応じて適切な型を選択することが重要です。

  1. MySQLでJSON型カラムにデフォルト値を設定する方法

    MySQLでは、JSON型のカラムにもデフォルト値を設定できます。その場合は、DEFAULT制約を使用します。基本的な構文は以下の通りです。ALTER TABLE テーブル名 MODIFY COLUMN カラム名 JSON NOT NULL DEFAULT ( JSON_OBJECT() );サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。ここでは demo24 というテーブルを作成します。mysql> create table demo24 -> ( -> employee_information text -> ) ->; Query OK,

  2. MySQLでDEFAULTキーワードを使ってデフォルト値を設定したテーブルを作成する方法

    MySQLでは、テーブル作成時にカラムのデータ型の後にDEFAULTキーワードを指定することで、そのカラムにデフォルト値を設定できます。INSERT文で値が指定されなかった場合、自動的にこのデフォルト値が適用されます。テーブルの作成例それでは、実際にデフォルト値を持つテーブルを作成してみましょう。mysql> create table demo33 -> ( -> id int not null auto_increment primary key, -> name varchar(20) not null, -> start_date date default(