MySQLでテーブルから値を削除するストアドプロシージャを作成する方法
MySQLでは、INパラメータを受け取るストアドプロシージャを作成することで、テーブルから特定の値(レコード)を簡単に削除できます。ここでは、次のようなデータを持つ「student_info」テーブルを例に、その手順を解説します。
mysql> Select * from student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 100 | Aarav | Delhi | Computers | | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | +------+---------+------------+------------+ 4 rows in set (0.00 sec)
ストアドプロシージャの作成
まず、「Delete_studentinfo」という名前のストアドプロシージャを作成します。このプロシージャはINT型のINパラメータ「p_id」を受け取り、そのIDに一致するレコードをDELETE文で削除する仕組みです。
mysql> DELIMITER // ;
mysql> Create Procedure Delete_studentinfo ( IN p_id INT)
-> BEGIN
-> DELETE FROM student_info
-> WHERE ID=p_id;
-> END //
Query OK, 0 rows affected (0.11 sec)
mysql> DELIMITER ; //なお、ストアドプロシージャ内では複数のSQL文を記述するため、文の区切り文字を一時的に「//」へ変更しています(DELIMITERの変更)。作成が完了したら、元の区切り文字「;」に戻すのを忘れないようにしましょう。
ストアドプロシージャの呼び出し
次に、CALL文を使ってプロシージャを呼び出し、削除したいレコードのIDを引数として渡します。
mysql> CALL Delete_studentinfo(100); Query OK, 1 row affected (1.09 sec) mysql> Select * from student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | | 125 | Raman | Bangalore | Computers | +------+---------+------------+------------+ 4 rows in set (0.01 sec)
上記の結果セットを見ると、id = 100 のレコードがテーブルから正常に削除されていることが確認できます。このように、INパラメータ付きのストアドプロシージャを用意しておけば、IDを指定するだけで繰り返し同じ削除処理を実行できるため、アプリケーション側のコードもシンプルになります。
-
MySQLストアドプロシージャでテーブルを作成する方法
MySQLでは、ストアドプロシージャの中にCREATE TABLE文を組み込むことで、テーブル作成処理を自動化できます。本記事では、Id・UserFirstName・UserLastNameの3つのカラムを持つテーブル「DemoTable」を作成するストアドプロシージャの作成から実行までの手順を解説します。 1. ストアドプロシージャの作成 まずDELIMITERコマンドで区切り文字を「//」に変更します。これは、プロシージャ内のセミコロン(;)が通常のSQL文の終端として誤認識されるのを防ぐためです。続いて、BEGIN〜ENDブロック内にCREATE TABLE文を記述します。 mys
-
MySQLのビューからテーブルを作成する方法を徹底解説!基本構文と実行手順
ビューからテーブルを作成する基本構文 MySQLでは、ビュー(VIEW)をもとに新しいテーブルを簡単に作成できます。基本となる構文は以下の通りです。 create table yourTableName select * from yourViewName; このように「CREATE TABLE ... SELECT」構文を使うことで、ビューの構造とデータをそのまま新しいテーブルへ复制できます。以下、具体的な手順を見ていきましょう。 ステップ1:サンプルテーブルを作成する まず、元となるテーブルを作成します。 mysql> create table DemoTable830(Name