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

Thủ tục được lưu trữ là gì và làm thế nào chúng ta có thể tạo các thủ tục được lưu trữ trong MySQL?


Thủ tục lưu trữ, trong ngữ cảnh của ngôn ngữ máy tính thông thường, có thể được định nghĩa là một chương trình con giống như một chương trình con được lưu trữ trong cơ sở dữ liệu. Trong ngữ cảnh của MySQL, nó là một phân đoạn của các câu lệnh SQL khai báo được lưu trữ bên trong danh mục cơ sở dữ liệu. Trước khi viết các thủ tục được lưu trữ trong MySQL, chúng ta phải kiểm tra phiên bản vì MySQL 5 giới thiệu thủ tục được lưu trữ. Sau đây là cú pháp để tạo một thủ tục được lưu trữ -

Cú pháp

CREATE [DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter: [ IN | OUT | INOUT ] param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA
| MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement

Ví dụ

Sau đây là một ví dụ trong đó chúng tôi đã tạo một thủ tục đơn giản để lấy tất cả các bản ghi từ bảng ‘student_info’ có dữ liệu sau -

mysql> select * from student_info;
+-----+---------+------------+------------+
| id  | Name    | Address    | Subject    |
+-----+---------+------------+------------+
| 100 | Aarav   | Delhi      | Computers  |
| 101 | YashPal | Amritsar   | History    |
| 105 | Gaurav  | Jaipur     | Literature |
| 110 | Rahul   | Chandigarh | History    |
+------+--------+------------+------------+
4 rows in set (0.00 sec)

Bây giờ, với sự trợ giúp của các truy vấn sau, chúng tôi đã tạo thủ tục được lưu trữ có tên allrecords ()

mysql> Delimiter //
mysql> Create Procedure allrecords()
    -> BEGIN
    -> Select * from Student_info;
    -> END//
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER ;