MySQLで既存テーブルにcreated_atカラム(タイムスタンプ)を追加する方法
すでに作成済みのテーブルに「created_at」カラムを追加したい場合は、ALTERコマンドを使用します。この記事では、実際のSQL例とともに、タイムスタンプ型のカラムを追加してデフォルト値に現在時刻を自動設定する手順を解説します。
1. サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。以下は「created_at」カラムがまだ存在しないテーブルを作成するクエリです。
mysql> create table formDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Email varchar(128),
-> PhoneNumber varchar(15),
-> Country varchar(30),
-> Platform varchar(40)
-> );
Query OK, 0 rows affected (0.53 sec)
このテーブルには、Id・Email・PhoneNumber・Country・Platform の5つのカラムが定義されています。
2. ALTER TABLEでcreated_atカラムを追加する
次に、ALTER TABLE構文を使って、「created_at」カラムを追加します。ポイントは以下の通りです。
- データ型は TIMESTAMP を指定する
- NOT NULL 制約を付ける
- デフォルト値として CURRENT_TIMESTAMP を設定することで、レコード挿入時に自動的に現在日時が記録される
注意: カラム名にスペースを含めたい場合(例:「created at」)は、バッククォート(`)で囲む必要があります。ただし、実務ではスペースを含まない「created_at」のようなスネークケース命名が推奨されます。
以下が、上記テーブルに「created_at」カラムを追加するクエリです。TIMESTAMP型でデフォルト値にCURRENT_TIMESTAMPが設定されているのが分かります。
mysql> alter table formDemo
-> add column `created at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.42 sec)
Records: 0 Duplicates: 0 Warnings: 0
3. DESCコマンドでテーブル構造を確認する
カラムが正しく追加されたかどうかは、DESCコマンドでテーブルの構造を確認できます。
mysql> DESC formDemo;
実行結果は以下の通りです。「created at」カラムが追加され、Default列にCURRENT_TIMESTAMPが設定されていることが確認できます。
+-------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+-------------------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Email | varchar(128) | YES | | NULL | |
| PhoneNumber | varchar(15) | YES | | NULL | |
| Country | varchar(30) | YES | | NULL | |
| Platform | varchar(40) | YES | | NULL | |
| created at | timestamp | NO | | CURRENT_TIMESTAMP | |
+-------------+--------------+------+-----+-------------------+----------------+
6 rows in set (0.01 sec)
上記の出力結果を見ると、「created at」カラムが正常に追加されていることが分かります。これ以降、このテーブルにINSERTでレコードを追加すると、明示的に値を指定しなくてもCURRENT_TIMESTAMPによって作成日時が自動的に記録されるようになります。
-
MySQLでDATETIME型の列に時間を追加する方法|ADDTIME()関数の使い方を解説
DATETIME型の値に時間を加算したい場合、MySQLではADDTIME()関数を使うのが便利です。この記事では、実際にテーブルを作成し、サンプルデータを挿入しながら、ADDTIME()関数で時間を追加する手順をわかりやすく解説します。1. テーブルを作成するまず、DATETIME型の列を持つテーブルを作成します。mysql> create table DemoTable1848 ( ShippingDate datetime ); Query OK, 0 rows affected (0.00 sec)2. サンプルデータを挿入する次に、INSERT文を使って
-
PythonでMySQLのテーブルに新しい列(カラム)を追加する方法
既存のテーブルに後から新しい列を追加したい場面は少なくありません。例えば、「Students(学生)」というテーブルに「Name(名前)」「Age(年齢)」「Roll no(出席番号)」といった列があるとします。ここに、新しく「Address(住所)」という列を追加したい場合、どうすればよいのでしょうか。このようなときに活躍するのがALTERコマンドです。ALTERコマンドは、データベース内の列を変更・削除・更新するためのコマンドで、ADD句と組み合わせることで、テーブルに新しい列を追加することもできます。構文ALTER TABLE table_name ADD new_column_name