Tôi đang cố lấy thông số đầu ra từ thủ tục lưu sẵn của MySQL, hãy xem ví dụ bên dưới:Làm cách nào để lấy thông số đầu ra từ thủ tục lưu sẵn MySQL trong Rails?
1 Trong mysql tôi đã tạo quy trình này và nó hoạt động.
CREATE PROCEDURE sp_name (out id int)
Begin
select id into @id from table order by id desc limit 1;
End
mysql> call sp_deduct_credit_and_money(@id);
Query OK, 0 rows affected (0.01 sec)
mysql> select @id;
+--------------+
| @id |
+--------------+
| 24 |
+--------------+
1 row in set (0.00 sec)
2 Vì vậy, nó cũng làm việc trong Rails, NHƯNG nó sẽ không trả lại bất kỳ giá trị cho tôi:
ActiveRecord::Base.connection.execute("call sp_name(@id)")
ActiveRecord::Base.connection.execute("select @id")
Dưới đây là các bản ghi trong Rails
(2.0ms) call sp_name(@id)
(0.1ms) select @id
Câu hỏi của tôi là làm thế nào tôi có thể nhận được giá trị trả về của tham số đầu ra @id
?
Lý do thực sự để sử dụng thủ tục lưu sẵn là gì? Có yêu cầu cụ thể không? Nếu vậy, đừng quên khó giữ phiên bản và bảo trì qua nhóm phát triển – Anatoly
bạn đang sử dụng đá quý nào cho mysql? – Fivell
@Fivell Tôi đang sử dụng mysql2 –