Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để ngăn chặn đầu ra thủ tục lưu trữ MySQL?

Để ngăn chặn đầu ra thủ tục lưu trữ MySQL, bạn có thể sử dụng biến. Đầu tiên chúng ta hãy tạo một bảng.

mysql> create table person_information
   -> (
   -> Id int,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (0.50 sec)

Sau đây là truy vấn để chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert:

mysql> insert into person_information values(100,'John');
Query OK, 1 row affected (0.17 sec)

mysql> insert into person_information values(101,'Chris');
Query OK, 1 row affected (0.22 sec)

mysql> insert into person_information values(102,'Robert');
Query OK, 1 row affected (0.16 sec)

Sau đây là truy vấn để hiển thị các bản ghi từ bảng bằng lệnh select:

mysql> select *from person_information;

Điều này sẽ tạo ra kết quả sau

+------+--------+
| Id | Name     |
+------+--------+
| 100 | John    |
| 101 | Chris   |
| 102 | Robert  |
+------+--------+
3 rows in set (0.00 sec)

Đây là truy vấn để chặn đầu ra thủ tục được lưu trữ MySQL:

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_supressOutputDemo()
   -> BEGIN
   -> set @output=(select Name from person_information where id=101);
   -> END
   -> //
Query OK, 0 rows affected (0.14 sec)

mysql> DELIMITER ;

Bạn có thể gọi thủ tục đã lưu ở trên bằng lệnh CALL:

mysql> call sp_supressOutputDemo();
Query OK, 0 rows affected (0.00 sec)

Sau khi gọi thủ tục được lưu trữ ở trên, chúng tôi không nhận được bất kỳ thứ gì. Do đó, bạn cần sử dụng câu lệnh select để lấy đầu ra.

Sau đây là truy vấn

mysql> select @output;

Điều này sẽ tạo ra kết quả sau

+---------+
| @output |
+---------+
| Chris   |
+---------+
1 row in set (0.00 sec)