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

単一のMySQLselectステートメントを使用してストアドプロシージャに2つの変数を設定するにはどうすればよいですか?


このために、最初にMySQLで新しいテーブルを作成しましょう

mysql> create table useProcedure
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > FirstName varchar(20),
   - > LastName varchar(20)
   - > );
Query OK, 0 rows affected (0.65 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。

クエリは次のとおりです

mysql> insert into useProcedure(FirstName,LastName) values('Adam','Smith');
Query OK, 1 row affected (0.27 sec)

以下は、単一のselectステートメントを使用してストアドプロシージャに2つの変数を設定するためのストアドプロシージャです。ストアドプロシージャを作成するためのクエリは次のとおりです

mysql> DELIMITER //
mysql> create procedure Sp_Demo()
   - > BEGIN
   - > declare one varchar(20);
   - > declare two varchar(20);
   - > select FirstName, LastName INTO one, two from useProcedure where id = 1;
   - > select one, two;
   - > END;
   - > //
Query OK, 0 rows affected (0.26 sec)
mysql> DELIMITER ;

CALLコマンドを使用してストアドプロシージャを呼び出します。

クエリは次のとおりです

mysql> call Sp_Demo();

以下は出力です

+------+-------+
| one  | two   |
+------+-------+
| Adam | Smith |
+------+-------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

  1. MySQLで1回のストアドプロシージャ呼び出しを使用して、2つのテーブルに値を挿入します

    以下は、ストアドプロシージャを使用して2つのテーブルに値を挿入するための構文です- DELIMITER // CREATE PROCEDURE yourProcedureName(anyVariableName int)    BEGIN    insert into yourTableName1(yourColumnName1) values(yourVariableName);    insert into yourTableName2(yourColumnName2) values(yourVariableName); &nbs

  2. DECLAREキーワードを使用してMySQLストアドプロシージャに変数を作成します

    ストアドプロシージャの変数にMySQLDECLAREを使用する- DECLARE anyVariableName int DEFAULT anyValue; ストアドプロシージャで変数を作成するために、上記の構文を実装しましょう- mysql> DELIMITER // mysql> CREATE PROCEDURE variable_Demo()     -> BEGIN     -> DECLARE lastInsertedId int DEFAULT -1;     -> select lastI