Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ข้อกำหนดเบื้องต้นสำหรับการเริ่มเขียนและใช้ MySQL Stored Procedure

เราต้องมีข้อกำหนดเบื้องต้นต่อไปนี้ก่อนเริ่มเขียนและใช้ MySQL stored procedures

เวอร์ชัน MySQL

ตามที่รู้ว่า MySQL 5 นำเสนอ stored procedures ดังนั้น ขั้นแรก เราต้องตรวจสอบเวอร์ชันของ MySQL ก่อนเริ่มเขียนและใช้ stored procedures สามารถทำได้ด้วยคำสั่งต่อไปนี้

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

สิทธิ์ของผู้ใช้ปัจจุบัน

จริงๆ แล้ว CREATE PROCEDURE และ CREATE FUNCTION ต้องการสิทธิ์ CREATE ROUTINE โดยค่าเริ่มต้น MySQL ให้สิทธิ์ ALTER ROUTINE และ EXECUTE แก่ผู้สร้าง routine อัตโนมัติ พฤติกรรมนี้สามารถเปลี่ยนได้โดยการปิดตัวแปรระบบ automatic_sp_privileges สิทธิ์ของผู้ใช้ปัจจุบันสามารถตรวจสอบได้ด้วยคำสั่งต่อไปนี้

mysql> SHOW PRIVILEGES

การเลือกฐานข้อมูล

ก่อนสร้าง procedure เราต้องเลือกฐานข้อมูลจากฐานข้อมูลที่มีอยู่ สามารถทำได้ด้วยความช่วยเหลือของคำสั่งต่อไปนี้

mysql> USE query;
Database changed

จากคำสั่งข้างต้น ชัดเจนว่าเรากำลังใช้ฐานข้อมูลชื่อ 'query'

การเลือก DELIMITER

Delimiter คือตัวอักษรหรือสตริงของตัวอักษรที่ใช้เพื่อจบคำสั่ง SQL โดยค่าเริ่มต้น เราใช้เครื่องหมายเซมิโคลอน (;) เป็น delimiter แต่สิ่งนี้ทำให้เกิดปัญหาใน stored procedures เพราะ procedure อาจมีหลายคำสั่ง และทุกคำสั่งต้องลงท้ายด้วยเซมิโคลอน ดังนั้นสำหรับ delimiter ของคุณ ให้เลือกสตริงที่พบได้นادرภายในคำสั่งหรือภายใน procedure เราสามารถเลือก double backslash // หรือ double dollar signs $$ หรือ delimiter อื่นๆ ที่เราชอบ สามารถทำได้ด้วยความช่วยเหลือของคำสั่งต่อไปนี้

mysql> DELIMITER // ;

ตอนนี้ delimiter เริ่มต้นได้เปลี่ยนเป็นเครื่องหมาย // แล้ว และสามารถตรวจสอบได้จากคำสั่งต่อไปนี้

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)