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

MySQLストアドプロシージャでユーザー変数をどのように使用できますか?


MySQLストアドプロシージャでは、ユーザー変数はアンパサンド、つまり@で参照され、ユーザー変数名の前に付けられます。たとえば、@ A、@Bなどはユーザー変数です。それを実証するために、次の手順を作成しています-

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE Proc_Uservariables()
   -> BEGIN
   -> SET @A = 100;
   -> SET @B = 500;
   -> SELECT @A,@B,@A+@B;
   -> END //
Query OK, 0 rows affected (0.00 sec)

mysql> Delimiter ; //
mysql> CALL Proc_Uservariables();
+------+------+-------+
| @A   | @B   | @A+@B |
+------+------+-------+
|  100 |  500 |   600 |
+------+------+-------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

  1. MySQLストアドプロシージャ内でSTARTトランザクションを実行するにはどうすればよいですか?

    知っているように、STARTトランザクションはトランザクションを開始し、自動コミットモードをオフに設定します。次の例では、次のデータを持つテーブルemployee.tblに新しいレコードを挿入するSTARTトランザクションを使用してストアドプロシージャを作成しました- mysql> Select * from employee.tbl; +----+---------+ | Id | Name    | +----+---------+ | 1  | Mohan   | | 2  | Gaurav  | | 3  |

  2. MySQLストアドプロシージャは、その中の別のMySQLストアドプロシージャをどのように呼び出すことができますか?

    MySQLストアドプロシージャがその中の別のMySQLストアドプロシージャを呼び出す可能性は十分にあります。これを示すために、ストアドプロシージャが別のストアドプロシージャを呼び出してlast_insert_idを見つける例を取り上げています。 例 mysql> Create table employee.tbl(Id INT NOT NULL AUTO_INCREMENT, Name Varchar(30) NOT NULL, PRIMARY KEY(id))// Query OK, 0 rows affected (3.87 sec) mysql> Create Proced