เราต้องมีข้อกำหนดเบื้องต้นดังต่อไปนี้ก่อนเริ่มเขียนและใช้กระบวนงานที่เก็บไว้ของ MySQL –
เวอร์ชัน MySQL
อย่างที่เราทราบดีว่า MySQL 5 ได้แนะนำโพรซีเดอร์ที่เก็บไว้ ดังนั้นก่อนอื่นเราต้องตรวจสอบเวอร์ชันของ MySQL ก่อนเริ่มเขียนและใช้โพรซีเดอร์ที่เก็บไว้ สามารถทำได้ด้วยแบบสอบถามต่อไปนี้ -
mysql> Select VERSION(); +-----------+ | VERSION() | +-----------+ | 5.7.20 | +-----------+ 1 row in set (0.10 sec)
สิทธิ์สำหรับผู้ใช้ปัจจุบัน
จริงๆ แล้ว CREATE PROCEDURE และ CREATE FUNCTION ต้องใช้สิทธิ์ CREATE ROUTINE ตามค่าเริ่มต้น MySQL จะให้สิทธิ์ ALTER ROUTINE และ EXECUTE แก่ผู้สร้างประจำโดยอัตโนมัติ ลักษณะการทำงานนี้สามารถเปลี่ยนแปลงได้โดยการปิดใช้งานตัวแปรระบบ automatic_sp_privileges สิทธิ์สำหรับผู้ใช้ปัจจุบันสามารถตรวจสอบได้ด้วยแบบสอบถามต่อไปนี้ -
mysql> SHOW PRIVILEGES
การเลือกฐานข้อมูล
ก่อนสร้างโพรซีเดอร์ เราจะต้องเลือกฐานข้อมูลจากฐานข้อมูลที่มีอยู่ สามารถทำได้โดยใช้แบบสอบถามต่อไปนี้ -
mysql> USE query; Database changed
จากแบบสอบถามข้างต้น เป็นที่ชัดเจนว่าเรากำลังใช้ฐานข้อมูลชื่อ 'แบบสอบถาม'
การเลือก DELIMITER
ตัวคั่นคืออักขระหรือสตริงของอักขระที่ใช้เพื่อทำให้คำสั่ง SQL สมบูรณ์ โดยค่าเริ่มต้น เราใช้เครื่องหมายอัฒภาค (;) เป็นตัวคั่น แต่สิ่งนี้ทำให้เกิดปัญหาในโพรซีเดอร์ที่เก็บไว้ เนื่องจากโพรซีเดอร์สามารถมีหลายคำสั่ง และทุกคนต้องลงท้ายด้วยเซมิโคลอน ดังนั้นสำหรับตัวคั่นของคุณ ให้เลือกสตริงที่ไม่ค่อยเกิดขึ้นภายในคำสั่งหรือภายในโพรซีเดอร์ เราสามารถเลือกแบ็กสแลชคู่ // หรือเครื่องหมายดอลลาร์คู่ $$ หรือตัวคั่นอื่นใดที่เราเลือก สามารถทำได้โดยใช้แบบสอบถามต่อไปนี้ -
mysql> 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)