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」が割り振られ、ストアドプロシージャ経由で渡した値が正しくテーブルに登録されていることが確認できました。
-
MySQLのテーブルデータはWindowsのどこに保存される?確認方法をわかりやすく解説
MySQLテーブルデータの保存場所を確認する方法MySQLで作成したテーブルのデータが、実際にWindows上のどの場所に保存されているのかを知りたいケースはよくあります。そんなときは、システム変数「datadir」を確認することで、データディレクトリの場所を簡単に把握できます。まずは、最もシンプルな方法として「@@datadir」を参照する構文を見てみましょう。select @@datadir;また、SHOW VARIABLESコマンドを使って確認することもできます。その場合の構文は以下の通りです。show variables where Variable_name = datadir;実際
-
MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)
MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi