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

MySQLテーブルを一括更新する方法|ADDTIME関数で複数行の時刻データをまとめて変更

MySQLでは、UPDATE文と関数を組み合わせることで、テーブル内の複数のレコードを一度に一括更新(バッチ更新)できます。本記事では、時刻型(TIME型)のカラムに対してADDTIME関数を使い、すべての行の時刻をまとめて加算・更新する手順を、実際のSQL文と実行結果付きでわかりやすく解説します。

1. サンプルテーブルを作成する

まず、時刻データを格納するためのテーブル「DemoTable」を作成します。

mysql> create table DemoTable
    -> (
    -> BreakfastTime time
    -> );
Query OK, 0 rows affected (0.59 sec)

2. テストデータを挿入する

INSERT文を使って、サンプルとなるレコードを3件追加します。

mysql> insert into DemoTable values('7:30:45');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('8:00:30');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('7:55:00');
Query OK, 1 row affected (0.10 sec)

3. 現在のレコードを確認する

SELECT文で、挿入した全レコードを表示してみましょう。

mysql> select * from DemoTable;

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

+---------------+
| BreakfastTime |
+---------------+
| 07:30:45     |
| 08:00:30     |
| 07:55:00     |
+---------------+
3 rows in set (0.00 sec)

4. 一括更新(バッチ更新)を実行する

ここが本題です。以下のようにUPDATE文の中でADDTIME関数を使用すると、WHERE句による絞り込みなしで、テーブル内の全レコードに対して一括で時刻を加算できます。

mysql> update DemoTable
    -> set BreakfastTime=addtime(BreakfastTime,'2:00:00');
Query OK, 3 rows affected (0.13 sec)
Rows matched: 3 Changed: 3 Warnings: 0

このクエリでは、既存のBreakfastTimeの値にそれぞれ「2時間」を加算しています。「Rows matched: 3 Changed: 3」と表示されていることから、3件すべてのレコードが正常に更新されたことがわかります。

5. 更新後のレコードを確認する

もう一度SELECT文を実行して、更新結果を確認しましょう。

mysql> select * from DemoTable;

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

+---------------+
| BreakfastTime |
+---------------+
| 09:30:45     |
| 10:00:30     |
| 09:55:00     |
+---------------+
3 rows in set (0.00 sec)

すべてのレコードの時刻が2時間ずつ進んでいることが確認できます。

ポイント解説:ADDTIME関数とは

ADDTIME関数は、第1引数に元の時刻または日時、第2引数に加算したい時間を指定することで、計算後の時刻を返すMySQLの組み込み関数です。今回のようにUPDATE文のSET句でカラム自身を参照しながら使うことで、全行への一括更新が簡単に実現できます。

なお、特定の行だけを更新したい場合は、WHERE句を追加して条件を指定してください。また、減算を行いたい場合はSUBTIME関数を使うことで同様に処理できます。

  1. JavaのPreparedStatementを使ってMySQLテーブルを更新する方法

    JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。1. テーブルの作成まず、MySQLで更新用のテーブルを作成しましょう。mysql> create table DemoTable( Id int, FirstName varchar(40) ); Query OK, 0 rows a

  2. MySQLでテーブルが存在するかどうかを確認する方法【INFORMATION_SCHEMA.TABLES活用】

    MySQLでテーブルの存在を確認するにはMySQLにおいて、特定のテーブルがデータベース内に存在するかどうかを確認したい場合、INFORMATION_SCHEMA.TABLES を利用するのが一般的な方法です。このシステムビューには、サーバー上のすべてのデータベースとテーブルに関するメタデータが格納されており、これを参照することで目的のテーブルが存在するかを簡単に調べられます。基本構文テーブルの存在確認は、以下のようなSELECT文で行います。select table_name from information_schema.tables where table_schema=database