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