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

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

MySQLのストアドプロシージャを使ってテーブルにデータを挿入するには、以下のような構文を使用します。

create procedure yourProcedureName(OptionalParameter)
    begin
    insert into yourTableName() values(yourValue1,yourValue2,...N);
end

サンプルテーブルの作成

まずは、この構文を実際に理解するために、テスト用のテーブルを作成してみましょう。

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

このテーブルは、自動採番される「Id」を主キーとし、「Name(名前)」と「Age(年齢)」というカラムを持つシンプルな構造になっています。

ストアドプロシージャの作成

次に、データ挿入を行うストアドプロシージャを作成します。ストアドプロシージャ内では複数のSQL文を記述するため、デリミタ(区切り文字)を一時的に変更してから定義します。

mysql> delimiter //
mysql> create procedure insert_demo(IN Name varchar(40),IN Age int)
    begin
    insert into DemoTable1928(Name,Age) values(Name,Age);
    end
    //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

この例では、「insert_demo」という名前のストアドプロシージャを作成しています。「IN Name varchar(40)」と「IN Age int」の2つの入力パラメータを受け取り、それらの値をINSERT文でテーブルに挿入します。処理が完了したら、delimiter ;でデリミタを元に戻すのを忘れないようにしましょう。

ストアドプロシージャの呼び出し

作成したストアドプロシージャは、CALLコマンドを使って実行できます。

mysql> call insert_demo('Chris',24);
Query OK, 1 row affected, 1 warning (0.00 sec)

ここでは、名前として「Chris」、年齢として「24」を引数に渡してプロシージャを呼び出しています。実行結果として1行が挿入されたことがわかります。

挿入結果の確認

SELECT文を使って、テーブル内のすべてのレコードを表示し、データが正しく挿入されたか確認しましょう。

mysql> select * from DemoTable1928;

上記のクエリを実行すると、次のような出力が得られます。

+----+-------+------+
| Id | Name  |  Age |
+----+-------+------+
|  1 | Chris |   24 |
+----+-------+------+
1 row in set (0.00 sec)

このように、AUTO_INCREMENTによってIdカラムに自動的に「1」が割り振られ、ストアドプロシージャ経由で渡した値が正しくテーブルに登録されていることが確認できました。

  1. MySQLのテーブルデータはWindowsのどこに保存される?確認方法をわかりやすく解説

    MySQLテーブルデータの保存場所を確認する方法MySQLで作成したテーブルのデータが、実際にWindows上のどの場所に保存されているのかを知りたいケースはよくあります。そんなときは、システム変数「datadir」を確認することで、データディレクトリの場所を簡単に把握できます。まずは、最もシンプルな方法として「@@datadir」を参照する構文を見てみましょう。select @@datadir;また、SHOW VARIABLESコマンドを使って確認することもできます。その場合の構文は以下の通りです。show variables where Variable_name = datadir;実際

  2. MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)

    MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi