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

สร้างตัวแปรใน MySQL Stored Procedure ด้วย DECLARE

ใน MySQL Stored Procedure ใช้คำสั่ง DECLARE ประกาศตัวแปร Local (ใช้ได้เฉพาะภายใน Procedure) ต่างจาก User-defined Variable (@var) ที่ใช้ได้ทั่ว Session

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

DECLARE variableName datatype DEFAULT defaultValue;

ตัวอย่าง Procedure ใช้ DECLARE

mysql> DELIMITER //
mysql> CREATE PROCEDURE variable_Demo()
    -> BEGIN
    ->     DECLARE lastInsertedId INT DEFAULT -1;
    ->     SELECT lastInsertedId;
    ->     SET @providedLastId = 10001;
    ->     SELECT @providedLastId;
    -> END //
Query OK, 0 rows affected
mysql> DELIMITER ;

เรียกใช้ Procedure

mysql> CALL variable_Demo();

ผลลัพธ์ (2 Result Sets)

+----------------+
| lastInsertedId |
+----------------+
| -1             |
+----------------+
1 row in set

+-----------------+
| @providedLastId |
+-----------------+
| 10001           |
+-----------------+
1 row in set

คำอธิบาย:

  • DECLARE ต้องอยู่ต้น Block (หลัง BEGIN) ก่อนคำสั่งอื่น
  • ตัวแปร Local (lastInsertedId) ใช้ได้เฉพาะใน Procedure นี้ หายเมื่อ Procedure จบ
  • ตัวแปร User (@providedLastId) ใช้ได้ตลอด Session หลัง Procedure จบ
  • สามารถ SET var = value หรือ SELECT ... INTO var ได้
  • ชนิดข้อมูลรองรับทั้งหมด: INT, VARCHAR, DATE, DECIMAL, etc.