กระบวนงานที่เก็บไว้ ในบริบทของภาษาคอมพิวเตอร์ทั่วไป อาจถูกกำหนดเป็นรูทีนย่อยเหมือนกับโปรแกรมย่อยที่จัดเก็บไว้ในฐานข้อมูล ในบริบทของ MySQL เป็นส่วนของคำสั่ง SQL แบบประกาศที่จัดเก็บไว้ในแค็ตตาล็อกฐานข้อมูล ก่อนที่จะเขียนกระบวนงานที่เก็บไว้ใน MySQL เราต้องตรวจสอบเวอร์ชันก่อนเพราะ MySQL 5 แนะนำกระบวนงานที่เก็บไว้ ต่อไปนี้เป็นไวยากรณ์สำหรับการสร้างกระบวนงานที่เก็บไว้ -
ไวยากรณ์
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
ตัวอย่าง
ต่อไปนี้คือตัวอย่างที่เราได้สร้างขั้นตอนง่ายๆ เพื่อรับบันทึกทั้งหมดจากตาราง 'student_info' ซึ่งมีข้อมูลดังต่อไปนี้ -
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)
ตอนนี้ ด้วยความช่วยเหลือของแบบสอบถามต่อไปนี้ เราได้สร้างกระบวนงานที่เก็บไว้ชื่อ allrecords()
mysql> Delimiter // mysql> Create Procedure allrecords() -> BEGIN -> Select * from Student_info; -> END// Query OK, 0 rows affected (0.02 sec) mysql> DELIMITER ;