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

Điều kiện tiên quyết để bắt đầu viết và sử dụng thủ tục lưu trữ MySQL là gì?


Chúng ta phải có các điều kiện tiên quyết sau trước khi bắt đầu viết và sử dụng các thủ tục được lưu trữ trong MySQL -

Phiên bản MySQL

Như chúng ta biết rằng MySQL 5 đã giới thiệu các thủ tục được lưu trữ, do đó, trước hết chúng ta cần kiểm tra phiên bản của MySQL trước khi bắt đầu viết và sử dụng các thủ tục được lưu trữ. Nó có thể được thực hiện với truy vấn sau -

mysql> Select VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.20    |
+-----------+
1 row in set (0.10 sec)

Đặc quyền cho người dùng hiện tại

Trên thực tế, TẠO THỦ TỤC và TẠO CHỨC NĂNG yêu cầu đặc quyền TẠO ROUTINE. Theo mặc định, MySQL tự động cấp các đặc quyền ALTER ROUTINE và EXECUTE cho người tạo quy trình. Hành vi này có thể được thay đổi bằng cách tắt biến hệ thống automatic_sp_privileges. Các đặc quyền dành cho người dùng hiện tại có thể được kiểm tra bằng truy vấn sau -

mysql> SHOW PRIVILEGES

Chọn cơ sở dữ liệu

Trước khi tạo một thủ tục, chúng ta phải chọn một cơ sở dữ liệu từ các cơ sở dữ liệu có sẵn. Nó có thể được thực hiện với sự trợ giúp của truy vấn sau -

mysql> USE query;
Database changed

Từ truy vấn trên, rõ ràng là chúng tôi đang sử dụng cơ sở dữ liệu có tên là "truy vấn".

Chọn DELIMITER

Dấu phân cách là ký tự hoặc chuỗi ký tự được sử dụng để hoàn thành một câu lệnh SQL. Theo mặc định, chúng tôi sử dụng dấu chấm phẩy (;) làm dấu phân cách. Nhưng điều này gây ra vấn đề trong các thủ tục được lưu trữ vì một thủ tục có thể có nhiều câu lệnh và mọi người phải kết thúc bằng dấu chấm phẩy. Vì vậy, đối với dấu phân tách của bạn, hãy chọn một chuỗi hiếm khi xuất hiện trong một câu lệnh hoặc trong quy trình. Chúng tôi có thể chọn dấu gạch chéo ngược kép // hoặc dấu hiệu đô la kép $$ hoặc bất kỳ dấu phân cách nào khác mà chúng tôi lựa chọn. Nó có thể được thực hiện với sự trợ giúp của truy vấn sau -

mysql> DELIMITER // ;

Bây giờ, dấu phân cách mặc định đã được thay đổi thành dấu // và có thể kiểm tra nó từ truy vấn 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)