mysql 怎么定义变量

以下是一个简单存储过程的示例。
DECLAREv_indexINT;定义一个名为 v_index 的 INT 类型变量。
MYSQL 变量定义只能在存储过程和函数中定义。
与 Oracle/SQLServer 不同,它可以在 BEGIN/END 处定义/执行。
mysql> DELIMITER // mysql> CREATEPROCEDURETESTWhile()->BEGIN->DECLAREv_indexINT;->->SETv_index=0;->->WHIL Ev_index<5>SETv_index=v_index+1 ;->SELECTv_index;->ENDWHILE;->->END//QueryOK,0 行受影响(0.00秒)

mysql存储过程中 declare 和 set 定义变量的区别

在MySQL存储过程中,定义变量有两种方式: 1 、使用SET或SELECT直接赋值,变量名以@开头。
例如:set@var=1 ;可以在会话中的任何地方声明,作用域是整个会话,称为会话变量。
2 、用DECLARE关键字声明的变量只能在存储过程中使用,称为存储过程变量。
例如:DECLAREvar1 INTDEFAULT0;主要用于存储过程或向存储传递参数时。
两者的区别在于:调用存储过程时,用DECLARE声明的变量将被初始化为NULL。
会话变量(即以@开头的变量)将不会被重新初始化。
在一个会话中,它们只需要初始化一次。
之后,它们将是会话中最后一次计算的结果,相当于本次会话中的全局变量。
在存储过程中,当使用动态语句时,必须在预处理期间将动态内容分配给会话变量。
示例: set@v_sql=sqltext;PREPARestmtFROM@v_sql;EXECUTEstmt;DEALLOCATEPREPARESTmt;

mysql 定义变量

PHP、C++等语言中可以使用变量,存储过程中可以使用变量,但SQL语句中不能使用变量。
不过,你的要求可以用下面的 SQL 语句来实现: insertintoYYY table (字段 1 , 字段 2 , 字段 3 ) SELECT 字段 1 , 表达式 2 , 常量 3 FROMXXX table 注意:以上是两张表,一般不允许同时对一张表进行操作。
,如果是表,可以考虑使用临时表:SELECT字段1 ,表达式2 ,常量3 FROMXXX表INTOTEMPTMP表; insertintoYYY 表(字段 1 、字段 2 、字段 3 ) SELECT*FROMTMP 表;