MySQLストアドプロシージャでローカル変数をどのように使用できますか?
ローカル変数は、ストアドプロシージャ内で宣言される変数です。これらは、宣言されているBEGIN…ENDブロック内でのみ有効であり、任意のSQLデータ型を持つことができます。それを実証するために、次の手順を作成しています-
mysql> DELIMITER // ; mysql> Create Procedure Proc_Localvariables() -> BEGIN -> DECLARE X INT DEFAULT 100; -> DECLARE Y INT; -> DECLARE Z INT; -> DECLARE A INT; -> SET Y = 250; -> SET Z = 200; -> SET A = X+Y+Z; -> SELECT X,Y,Z,A; -> END // Query OK, 0 rows affected (0.00 sec) mysql> Delimiter ; // mysql> CALL Proc_Localvariables(); +------+------+------+------+ | X | Y | Z | A | +------+------+------+------+ | 100 | 250 | 200 | 550 | +------+------+------+------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
-
MySQLストアドプロシージャ内でSTARTトランザクションを実行するにはどうすればよいですか?
知っているように、STARTトランザクションはトランザクションを開始し、自動コミットモードをオフに設定します。次の例では、次のデータを持つテーブルemployee.tblに新しいレコードを挿入するSTARTトランザクションを使用してストアドプロシージャを作成しました- mysql> Select * from employee.tbl; +----+---------+ | Id | Name | +----+---------+ | 1 | Mohan | | 2 | Gaurav | | 3 |
-
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