MySQL 存儲過程中的變量


• 本地變量可以通過declare語句進行聲明
• 聲明后的變量可以通過select … into var_list進行賦值,或者通過set語句賦值,或者通過定義游標並使用fetch … into var_list賦值
• 通過declare聲明變量方法:
  • 使用default指定變量的默認值,如果沒有指定默認值則初始值為NULL
  • Type指明該變量的數據類型
  • 聲明的變量作用范圍為被聲明的begin … end語句塊之間
  • 聲明的變量和被引用的數據表中的字段名要區分開來

delimiter //
CREATE PROCEDURE sp1 (v_sid int)
BEGIN
DECLARE xname VARCHAR(64) DEFAULT 'bob';
DECLARE xgender INT;
SELECT sname, gender INTO xname, xgender
FROM students WHERE sid= v_sid;
SELECT xname,xgender;
END;
//
delimiter ;
mysql> delimiter //
mysql> CREATE PROCEDURE sp1 (v_sid int)
    -> BEGIN
    -> DECLARE xname VARCHAR(64) DEFAULT 'bob';
    -> DECLARE xgender INT;
    -> SELECT sname, gender INTO xname, xgender
    -> FROM students WHERE sid= v_sid;
    -> SELECT xname,xgender;
    -> END;
    -> //
Query OK, 0 rows affected (0.04 sec)

mysql> delimiter ;
mysql> 
mysql> call sp1(1);
+--------+---------+
| xname  | xgender |
+--------+---------+
| Andrew |       0 |
+--------+---------+
1 row in set (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

mysql> call sp1(2);
+-------+---------+
| xname | xgender |
+-------+---------+
| Andy  |       0 |
+-------+---------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> call sp1(3);
+-------+---------+
| xname | xgender |
+-------+---------+
| Bob   |       0 |
+-------+---------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM