Tôi không thể tìm thấy câu trả lời này ở bất kỳ đâu, nhưng bạn có thể gọi Thủ tục lưu trữ từ một thủ tục lưu trữ khác trong MySQL không? Tôi muốn lấy lại giá trị Identity và sử dụng nó trong Parent Stored Procedure. Chúng tôi không thể sử dụng FUNCTIONS nữa!Gọi thủ tục lưu trữ trong một thủ tục được lưu trữ trong MySQL
Trả lời
CREATE PROCEDURE innerproc(OUT param1 INT)
BEGIN
insert into sometable;
SELECT LAST_INSERT_ID() into param1 ;
END
-----------------------------------
CREATE PROCEDURE outerproc()
BEGIN
CALL innerproc(@a);
// @a gives you the result of innerproc
SELECT @a INTO variableinouterproc FROM dual;
END
OUT
thông số sẽ giúp bạn trong việc có được các giá trị trở lại sự kêu gọi procedure.Based trên rằng giải pháp phải được một cái gì đó như thế này.
Để gọi thủ tục khác, sử dụng CALL: ví dụ: Call SP1(parm1, parm2);
Để có được danh tính, bạn đã thử kiểm tra ra LAST_INSERT_ID(); Bạn sẽ làm một cái gì đó như SELECT LAST_INSERT_ID()
sau cuộc gọi SP của bạn.
Dưới đây là một hoàn chỉnh, kiểm tra ví dụ:
DELIMITER $$
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
) $$
CREATE PROCEDURE sp1()
BEGIN
insert into animals (name) values ('bear');
END $$
CREATE PROCEDURE sp2()
BEGIN
call sp1;
select last_insert_id();
END $$
call sp2;
Bạn đang sử dụng LAST_INSERT_ID(), bạn có nghĩ rằng điều này tốt hơn không? –
@Mike Flynn- OUT tham số không thực sự cần thiết, bạn có thể lấy id được chèn cuối cùng bằng cách chỉ cần gọi select last_insert_id(). – dcp
điều gì sẽ xảy ra nếu tôi muốn trả lại ID LAST INSERTED, hoặc lấy nó nếu nó có sẵn trong cùng một chức năng? –
- 1. Gọi thủ tục lưu trữ từ một thủ tục lưu trữ SQL Server
- 2. Gọi một thủ tục lưu trữ python
- 3. Thủ tục lưu trữ MySQL Quyền
- 4. Thực hiện một thủ tục được lưu trữ trong một thủ tục lưu sẵn
- 5. Thủ tục lưu trữ trong phpMyAdmin
- 6. Mẫu lưu trữ với các thủ tục được lưu trữ
- 7. Làm thế nào để gọi Thủ tục lưu trữ (với 2 tham số) trong một thủ tục lưu trữ?
- 8. Gọi một thủ tục lưu trữ trong Toad
- 9. Trong đó Địa điểm Mysql Compiled Thủ tục lưu trữ?
- 10. Thủ tục lưu trữ MySQL: Boolean Logic trong IF THEN
- 11. Thủ tục lưu trữ thực hiện một thủ tục lưu sẵn
- 12. gọi thủ tục được lưu trữ từ solr
- 13. lưu trữ thủ tục trả về varchar
- 14. mysql lưu trữ-thủ tục: ra tham số
- 15. Làm thế nào để lưu một thủ tục lưu trữ?
- 16. UNION có điều kiện trong thủ tục được lưu trữ
- 17. WebMatrix và lưu trữ Thủ tục
- 18. IF/ELSE Thủ tục lưu trữ
- 19. Thủ tục lưu trữ Vs. Xem
- 20. Thủ tục lưu trữ MySQL Xử lý lỗi
- 21. Ngăn chặn giao dịch trong thủ tục được lưu trữ
- 22. Thủ tục lưu trữ MySQL và tập lệnh PHP
- 23. MySQL deadlocks với thủ tục lưu trữ tạo ra UID
- 24. Thay đổi trình xóa thủ tục được lưu trữ
- 25. Các thủ tục lưu trữ Mysql Kiểu cột Tham chiếu
- 26. Entity Framework 4 Thủ tục lưu trữ Gọi Timing Out
- 27. Thủ tục lưu trữ không đồng bộ Các cuộc gọi
- 28. Thủ tục được lưu trữ hoặc mã số
- 29. Làm thế nào để gọi thủ tục lưu sẵn từ một thủ tục lưu sẵn khác?
- 30. Thả tất cả các thủ tục được lưu trữ trong MySQL hoặc sử dụng các thủ tục được lưu trữ tạm thời
Bạn đang sử dụng hết, bạn có nghĩ rằng điều này là tốt hơn sau đó thực hiện LAST_INSERT_ID()? –
Nếu đó là một hàm, bạn sẽ trả về LAST_INSERT_ID từ hàm là RETURN VALUE.Giải pháp này phải cung cấp giống nhau để PROCEDURE tương đương với hàm –
Câu trả lời khác cho biết tôi có thể sử dụng LAST_INSERT_ID() mà không cần OUT? –