Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีที่ MySQL Stored Procedure เรียก Stored Procedure อีกตัวหนึ่งภายใน


เป็นไปได้ที่ MySQL Stored Procedure จะเรียก MySQL Stored Procedure อีกตัวหนึ่งภายในได้ เพื่อสาธิต เราใช้ตัวอย่างที่ Stored Procedure หนึ่งจะเรียก Stored Procedure อีกตัวเพื่อหา 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 Procedure insert1() 
    -> BEGIN insert into employee.tbl(name) values ('Ram'); 
    -> END// 
Query OK, 0 rows affected (0.10 sec)

ตอนนี้ ใน Procedure ถัดไปคือ insert2() เราจะเรียก Stored Procedure ตัวแรกคือ insert1()

mysql> Create Procedure insert2() 
    -> BEGIN 
    -> CALL insert1(); 
    -> Select last_insert_id(); 
    -> END // 
Query OK, 0 rows affected (0.11 sec) 
mysql> Delimiter ; 
mysql> Call insert2(); 
+------------------+ 
| last_insert_id() | 
+------------------+ 
| 1                | 
+------------------+ 
1 row in set (0.36 sec) 
Query OK, 0 rows affected (0.37 sec)

ชุดผลลัพธ์ข้างต้นแสดงว่าเมื่อเราเรียก insert1() มันแทรกค่าแรกในตารางที่ชื่อ employee.tbl และเมื่อเรา select last_insert_id() ใน Stored Procedure ตัวที่ 2 คือ insert2() มันให้ผลลัพธ์ 1