Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Stored procedure MySQL gọi stored procedure khác bên trong nó

Stored procedure có thể gọi stored procedure khác (nested call). Ví dụ: thủ tục insert2() gọi insert1() để chèn dữ liệu rồi lấy 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)

mysql> CREATE PROCEDURE insert2()
    -> BEGIN
    -> CALL insert1();
    -> SELECT LAST_INSERT_ID();
    -> END //
Query OK, 0 rows affected (0.11 sec)

Gọi thủ tục ngoài:

mysql> DELIMITER ;
mysql> CALL insert2();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 1                |
+------------------+

insert1() chèn dòng đầu tiên (id=1), insert2() gọi nó và lấy LAST_INSERT_ID() = 1.