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

Tạo một thủ tục được lưu trữ với dấu phân cách trong MySQL

Bạn có thể tạo một thủ tục được lưu trữ bằng lệnh tạo thủ tục. Cú pháp như sau -

delimiter //
CREATE PROCEDURE yourStoreProcedureName()
BEGIN
   Declare variable here
   The query statement
END //

delimiter //

Áp dụng cú pháp trên để tạo một thủ tục được lưu trữ. Truy vấn như sau -

mysql> use test;
Database changed
mysql> delimiter //
mysql> create procedure Sp_callTableStoredProcTable()
   −> begin
   −> select *from StoredProcTable;
   −> end //
Query OK, 0 rows affected (0.54 sec)

Bây giờ bạn cần thay đổi dấu phân cách bằng; để gọi thủ tục được lưu trữ -

mysql> delimiter ;

Bạn có thể gọi thủ tục đã lưu trữ bằng lệnh CALL. Cú pháp như sau -

CALL yourStoredProcedureName();

Quy trình đã lưu trữ ở trên có thể được gọi bằng lệnh CALL như được hiển thị trong truy vấn bên dưới -

mysql> call Sp_callTableStoredProcTable();

Sau đây là kết quả -

+-----------+------+
| FirstName | Age  |
+-----------+------+
| John      | 23   |
| Bob       | 24   |
| David     | 20   |
+-----------+------+
3 rows in set (0.03 sec)

Query OK, 0 rows affected (0.06 sec)

Ở trên, chúng tôi đã sử dụng bảng ‘StoredProcTable’ và bảng này có ba bản ghi. Hiển thị tất cả các bản ghi bằng quy trình được lưu trữ.

Bạn có thể kiểm tra xem có bao nhiêu bản ghi trong bảng bằng quy trình được lưu trữ -

mysql> delimiter //
mysql> create procedure CountingRecords()
   −> begin
   −> select count(*) as AllRecords from StoredProcTable;
   −> end //
Query OK, 0 rows affected (0.19 sec)

mysql> delimiter ;

Gọi thủ tục đã lưu bằng lệnh CALL. Truy vấn như sau -

mysql> call CountingRecords();

Đầu ra sau đây hiển thị số lượng bản ghi -

+------------+
| AllRecords |
+------------+
|          3 |
+------------+
1 row in set (0.31 sec)

Query OK, 0 rows affected (0.33 sec)