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

กระบวนงานที่เก็บไว้ 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 Procedure insert1()
   -> BEGIN insert into employee.tbl(name) values ('Ram');
   -> END//
Query OK, 0 rows affected (0.10 sec)

ตอนนี้ ในโพรซีเดอร์ถัดไป insert2() เราจะเรียกโพรซีเดอร์ที่เก็บไว้ที่ 1 เช่น 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 และเมื่อเราเลือก last_insert_id() ในกระบวนงานที่เก็บไว้ที่ 2 เช่น insert2() ก็จะให้ผลลัพธ์ 1