zoukankan      html  css  js  c++  java
  • mysql存储过程之变量的定义

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

    ->使用set 或者select 直接赋值,变量名以@开头

    例如: set   @var=1;

    可以在会话的任何地方声明,作用域是整个会话,称为会话变量,也是全局变量

    ->以declare关键字声明的变量,只能在存储过程中使用,称为存储过程变量。 这种变量需要设置变量类型,而且只存在  begin....end  这段内

    例如:

    declare  var1  int  default  0 ;

    主要用在存储过程中,或者是给存储传参数中。

    两者区别:

    在调用存储过程时,declare声明的变量都会别初始化为null,而会话变量(以@开头的变量)则不会再被初始化,在一个会话内只被初始化一次,之后是对上一次会话的计算结果,相当于这个会话的全局变量。

    在存储过程中,使用动态语句,预处理时,动态内容必须赋给一个会话变量。
    例:
    set @v_sql= sqltext;
    PREPARE stmt FROM @v_sql;  
    EXECUTE stmt;     
    DEALLOCATE PREPARE stmt;

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    select ....into .....直接将表内内容赋值到指定变量中

    select name,bid into @a,@b from bank limit 1;     注意:变量名和字段名不能一致

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    存储过程:

    存储过程将一段通用的操作封装在一起,这样在不同平台都可以通用了。

    存储过程没有返回值,而且没有sql语句调用,只能是call 调用,而且不返回结果集,执行就执行了。

    显示所有存储过程:

    show procedure status;

    删除指定存储过程:

    drop   procedure  存储过程名 ;

  • 相关阅读:
    python相关的报错处理
    各版本数据库初次登录时,强制修改密码
    机器被感染病毒文件zigw的处理流程
    Let's encrypt申请泛域名证书以及报错处理
    添加/修改保存
    request.getRemoteUser() Spring Security做权限控制后
    hibernate hbm.xml配置映射
    hibernate 注解配置<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/X
    Web.xml配置详解之context-param
    在web.xml中通过contextConfigLocation配置spring
  • 原文地址:https://www.cnblogs.com/linqiuhua/p/7642038.html
Copyright © 2011-2022 走看看