暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的SQL语句 -复合语句(3) - DECLARE 语句

林员外聊编程 2020-12-15
211

DECLARE 语句

 

DECLARE 语句用于定义程序本地的各种项目:

 

● 局部变量。

 

● 条件和 handler

 

● 光标。

 

DECLARE 只允许用在 BEGIN ... END 复合语句中,并且必须在其开始处,在任何其他语句之前。

 

声明必须遵循一定的顺序。游标声明必须出现在 handler 声明之前。变量和条件声明必须出现在游标或 handler 声明之前。

 

存储程序中的变量

 

系统变量和用户定义变量可以在存储程序中使用,就像它们可以在存储程序上下文之外使用一样。此外,存储程序可以使用 DECLARE 来定义局部变量,而存储例程(过程和函数)可以声明带有参数,这些参数在例程和调用程序之间传递值。

 

● 要声明局部变量,请使用 DECLARE 语句。

 

● 可以直接用 SET 语句设置变量。

 

● 查询的结果可以使用 SELECT ... INTO var_list 存储到本地变量,或者打开光标,使用 FETCH ... INTO var_list 存储到本地变量。

 

不允许为存储过程或函数参数或存储程序局部变量指定 DEFAULT(例如,使用SET var_name = DEFAULT语句)。在 MySQL 8.0 中,这会导致语法错误。

 

本地变量 DECLARE 语句

 

DECLARE var_name [, var_name] ... type [DEFAULT value]

 

此语句声明存储程序中的局部变量。要为变量提供默认值,请使用 DEFAULT 子句。该值可以指定为表达式;它不必是常量。如果缺少 DEFAULT 子句,则初始值为 NULL

 

就数据类型和溢出检查而言,局部变量被视为等同于存储例程参数。

 

变量声明必须出现在游标或 handler 声明之前。

 

局部变量名不区分大小写。允许的字符和引用规则与其他标识符相同。

 

局部变量的作用域是声明它的 BEGIN ... END 块。变量可以在嵌套在声明块中的块中引用,但声明同名变量的块除外。

 

 

 

 

官方网址:

https://dev.mysql.com/doc/refman/8.0/en/declare.html

https://dev.mysql.com/doc/refman/8.0/en/stored-program-variables.html

https://dev.mysql.com/doc/refman/8.0/en/declare-local-variable.html

 


文章转载自林员外聊编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论