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

สร้าง Stored Procedure พร้อม Delimiter ใน MySQL

โครงสร้าง Stored Procedure พื้นฐาน

ต้องใช้ DELIMITER เพื่อเปลี่ยนตัวจบคำสั่งชั่วคราว ไมให้ชนกับ semicolon ภายใน procedure

รูปแบบคำสั่ง

DELIMITER //
CREATE PROCEDURE yourStoreProcedureName()
BEGIN
    DECLARE variable_name type;
    -- SQL statements
END //
DELIMITER ;

ตัวอย่างสร้าง Procedure เรียกตาราง

mysql> USE test;
Database changed
mysql> DELIMITER //
mysql> CREATE PROCEDURE Sp_callTableStoredProcTable()
    -> BEGIN
    -> SELECT * FROM StoredProcTable;
    -> END //
Query OK, 0 rows affected (0.54 sec)

mysql> DELIMITER ;

การเรียกใช้ Procedure

mysql> CALL Sp_callTableStoredProcTable();
+-----------+------+
| FirstName | Age  |
+-----------+------+
| John      | 23   |
| Bob       | 24   |
| David     | 20   |
+-----------+------+
3 rows in set (0.03 sec)

ตัวอย่าง Procedure นับจำนวนแถว

mysql> DELIMITER //
mysql> CREATE PROCEDURE CountingRecords()
    -> BEGIN
    -> SELECT COUNT(*) AS AllRecords FROM StoredProcTable;
    -> END //
Query OK, 0 rows affected (0.19 sec)
mysql> DELIMITER ;

mysql> CALL CountingRecords();
+------------+
| AllRecords |
+------------+
| 3          |
+------------+
1 row in set (0.31 sec)

ข้อควรจำ:

  • ต้อง DELIMITER // ก่อน CREATE PROCEDURE
  • จบด้วย END //
  • คืน DELIMITER ; หลังสร้างเสร็จ
  • ใช้ CALL procedure_name() เพื่อเรียกใช้
  • ใช้ DROP PROCEDURE IF EXISTS name ก่อนสร้างใหม่เพื่อป้องกัน error