列値を返すMySQLストアドプロシージャ?
mysql> create table DemoTable -> ( -> Id int, -> Score int -> ); Query OK, 0 rows affected (0.69 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values(1,858858686); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(2,9900554); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values(3,646565667); Query OK, 1 row affected (0.15 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
出力
これにより、次の出力が生成されます-
+------+-----------+ | Id | Score | +------+-----------+ | 1 | 858858686 | | 2 | 9900554 | | 3 | 646565667 | +------+-----------+ 3 rows in set (0.00 sec)
以下はMySQLストアドプロシージャです-
mysql> DELIMITER // mysql> CREATE PROCEDURE Test_StoredProcedure(in id INT, OUT scoreValue INT) -> BEGIN -> SELECT Score -> INTO scoreValue -> FROM DemoTable tbl -> WHERE tbl.Id = id; -> END -> // Query OK, 0 rows affected (0.18 sec) mysql> DELIMITER ;
次に、callコマンドを使用してストアドプロシージャを呼び出し、出力を「@result」という変数名に格納します-
mysql> call Test_StoredProcedure(2,@result); Query OK, 1 row affected (0.00 sec)
次に、selectステートメントを使用して変数値を表示します-
mysql> select @result;
出力
これにより、次の出力が生成されます-
+---------+ | @result | +---------+ | 9900554 | +---------+ 1 row in set (0.00 sec)
-
MySQLのストアドプロシージャにIfelseを実装しますか?
if-elseを実装するための構文は、次のとおりです- if yourCondition then yourStatement1; else yourStatement2; end if ; ストアドプロシージャのif-elseに関する上記の概念を理解するために、ストアドプロシージャを作成してみましょう- mysql> delimiter // mysql> create procedure If_else_stored_demo(value int) &n
-
列の値をMySQLストアドプロシージャの変数に格納します
変数を宣言するには、MySQLストアドプロシージャでDECLAREを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable2034 -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> StudentAge int -> ); Query OK, 0 rows