MySQLの既存テーブルに現在の日付を追加・更新する方法
既存のテーブルを更新するには UPDATE 文を使用します。そして、現在の日付を設定するには CURDATE() 関数を使います。
UPDATE テーブル名 SET カラム名 = CURDATE();
サンプルテーブルの作成
まずは動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> DueDate datetime
-> );
Query OK, 0 rows affected (0.58 sec)
データの挿入
次に、INSERT コマンドを使ってテーブルにいくつかのレコードを挿入します。
mysql> insert into DemoTable values('2019-01-10');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('2019-03-31');
Query OK, 1 row affected (0.18 sec)レコードの確認
SELECT 文でテーブル内のすべてのレコードを表示してみます。
mysql> select *from DemoTable;
上記のクエリを実行すると、以下のような出力が得られます。
+---------------------+
| DueDate |
+---------------------+
| 2019-01-10 00:00:00 |
| 2019-03-31 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)
現在の日付への更新方法
既存のテーブルに現在の日付を設定するためのクエリは以下の通りです。
mysql> update DemoTable set DueDate=CURDATE();
Query OK, 2 rows affected (0.13 sec)
Rows matched: 2 Changed: 2 Warnings: 0
補足:CURDATE() と NOW() の違い
CURDATE() は「日付のみ」を返す関数ですが、datetime 型のカラムに代入すると時刻は自動的に 00:00:00 となります。現在の日付と時刻の両方を設定したい場合は、NOW() 関数を使用してください。
更新結果の確認
もう一度 SELECT 文を実行して、テーブルの内容が正しく更新されたか確認しましょう。
mysql> select *from DemoTable;
実行すると、すべてのレコードが現在の日付(この例では 2019-06-22)に更新されていることがわかります。
+---------------------+
| DueDate |
+---------------------+
| 2019-06-22 00:00:00 |
| 2019-06-22 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)
応用:条件を指定して更新する
WHERE 句を組み合わせれば、特定のレコードだけを現在の日付に更新することも可能です。例えば、特定の日付以前のレコードのみ更新する場合は以下のようにします。
mysql> update DemoTable set DueDate=CURDATE() WHERE DueDate < '2019-02-01';
このように、UPDATE 文と CURDATE() 関数を組み合わせることで、既存の MySQL テーブルのカラム値を簡単に現在の日付へ一括更新できます。運用環境で実行する際は、事前にバックアップを取るか、トランザクション内で検証してから適用することをおすすめします。
-
MySQLでテーブルを作成し、現在の日付をデフォルト値として設定する方法
MySQLでは、テーブル作成時にDEFAULT制約を追加することで、カラムにデフォルト値を設定できます。日付型のカラムに対して現在の日付(CURRENT_DATE)をデフォルト値として指定すれば、レコード挿入時に明示的に値を渡さなくても自動的に当日の日付が登録されます。基本構文テーブルを作成し、DEFAULT制約を使ってデフォルト値を設定する際の基本的な構文は以下の通りです。CREATE TABLE yourTableName ( yourColumnName1 dataType not null , yourColumnName2 dataType default anyValue, . .
-
PythonでMySQLのテーブルに新しい列(カラム)を追加する方法
既存のテーブルに後から新しい列を追加したい場面は少なくありません。例えば、「Students(学生)」というテーブルに「Name(名前)」「Age(年齢)」「Roll no(出席番号)」といった列があるとします。ここに、新しく「Address(住所)」という列を追加したい場合、どうすればよいのでしょうか。このようなときに活躍するのがALTERコマンドです。ALTERコマンドは、データベース内の列を変更・削除・更新するためのコマンドで、ADD句と組み合わせることで、テーブルに新しい列を追加することもできます。構文ALTER TABLE table_name ADD new_column_name