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

MySQLでテーブルにデータを挿入するストアドプロシージャの作成方法

MySQLでは、ストアドプロシージャを利用することで、テーブルへのデータ挿入処理を再利用可能な形でまとめることができます。本記事では、実際にテーブルを作成し、データを挿入するためのストアドプロシージャを定義して呼び出すまでの一連の手順を解説します。

1. 挿入先となるテーブルを作成する

まず、データを挿入するためのテーブルを用意します。以下の例では、Id・Name・Age の3つのカラムを持つテーブル「insertDataUsingStoredProcedure」を作成しています。

mysql> create table insertDataUsingStoredProcedure
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    -> Name varchar(20),
    -> Age int
    -> );
Query OK, 0 rows affected (0.51 sec)

Idカラムには AUTO_INCREMENT を設定しているため、レコードを挿入する際にIdを指定しなくても自動的に連番が採番されます。

2. データ挿入用のストアドプロシージャを作成する

続いて、引数として受け取った値をテーブルに挿入するストアドプロシージャを作成します。プロシージャ本体を記述する際は、文の区切り文字(デリミタ)を // などに変更しておくと、BEGIN〜END 内のセミコロンが誤って解釈されるのを防げます。

mysql> DELIMITER //
mysql> CREATE PROCEDURE StoredProcedureInsertData(IN StudentName varchar(100),IN
StudentAge int)
    -> BEGIN
    -> insert into insertDataUsingStoredProcedure(Name,Age) values (StudentName, StudentAge );
    -> END
    -> //
Query OK, 0 rows affected (0.13 sec)
mysql> DELIMITER ;

この例では、IN パラメータとして「StudentName」(varchar型)と「StudentAge」(int型)の2つを受け取り、BEGIN〜END の中でINSERT文を実行しています。作成後は DELIMITER ; を実行して、デリミタを元に戻すことを忘れないようにしましょう。

3. ストアドプロシージャを呼び出してデータを挿入する

作成したプロシージャは、CALL 文を使って呼び出します。以下の例では、「Chris」という名前と年齢「24」を渡してレコードを挿入しています。

mysql> call StoredProcedureInsertData('Chris',24);
Query OK, 1 row affected (0.18 sec)

4. 挿入結果を確認する

最後に、SELECT文を実行してデータが正しく挿入されたかどうかを確認します。

mysql> select * from insertDataUsingStoredProcedure;

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

+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
| 1  | Chris | 24   |
+----+-------+------+

Nameカラムに「Chris」、Ageカラムに「24」が登録され、Idには自動的に「1」が採番されていることがわかります。

まとめ

このように、ストアドプロシージャを使えばINSERT処理をひとまとめにできるため、アプリケーション側からは単純なCALL文だけでデータ挿入を行えるようになります。同じ挿入処理を何度も実行する場合や、SQLのロジックをデータベース側に集約したい場合に非常に有効な手法です。

  1. JavaでMySQLデータベースにデータを挿入する方法をわかりやすく解説

    JavaからMySQLデータベースにデータを挿入するには、SQLのINSERTコマンドを使用します。基本的な構文は以下の通りです。 INSERT INTO テーブル名(カラム名1, カラム名2, ......カラム名N) VALUES(値1, 値2, ......値N); ここからは、Javaプログラムを使って実際にMySQLデータベースへレコードを挿入する手順を、順を追って見ていきましょう。 ステップ1:MySQLでテーブルを作成する まず、データの挿入先となるテーブルをMySQL側に作成します。以下のクエリを実行してください。 mysql> create table Insert

  2. JavaでMySQLテーブルに1つのカラムのみを挿入する方法

    JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m