• MySql存储过程


    #用户变量
    set @t = now();
    SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
    
    #使用SET初始化用户变量
    SET @ab = 'abcee';
    SELECT @ab := 'fghi';
    SELECT @ab;
    
    #使用SELECT初始化用户变量并赋值
    SELECT @var1 := '123456789';
    SELECT @var1;
    
    #判断存储过程是否存在并删除;
    DROP PROCEDURE IF EXISTS MYpROC;
    
    CREATE PROCEDURE MyProc
    (
    IN dMonth INT,            #会话变量
    IN dDay INT,                #会话变量
    OUT dTotalCount INT    #会话变量
    )
    begin
        #声明会话变量
        DECLARE MyVar int;
        
        #使用SELECT语句为用户变量赋值
        SELECT @var1 := '9999999';
        
        #条件查询
        SELECT * from dc_log WHERE MONTH(AddTime) = dMonth AND Day(AddTime) = dDay;
        
        #通过SELECT……INTO语句赋值
        SELECT COUNT(1) INTO dTotalCount from dc_log WHERE MONTH(AddTime) = dMonth AND Day(AddTime) = dDay;
        
        #通过SET语句赋值
        SET MyVar = dTotalCount;
        
        #输出会话变量
        SELECT MyVar;
    end
    
    #调用存储过程
    CALL myproc(9,21,@total);
    
    #输出参数
    select @total;
    
    
    SELECT * from dc_log;
    
    
    #显示所有全局变量
    show global variables;
    
    #查询最后一个自增ID
    SELECT @@IDENTITY;
    
    #查询本地计算机名称
    SELECT @@hostname;
    
    #查询MYSQL版本
    SELECT @@Version;
    
    #声明SQL变量,并使用英文的?作为占为符
    set @strSQL = 'SELECT * FROM dc_log WHERE UserName = ?';
    #预编译SQL,并赋值
    PREPARE stmt1 FROM @strSQL;
    #声明要传递的参数变量(用户变量)
    set @uname = 'admin';
    #执行SQL语句
    EXECUTE stmt1 USING @uname;

    单独使用EXECUTE的存储过程示例:

    #判断存储过程是否存在并删除;
    DROP PROCEDURE IF EXISTS execSQL;
    
    CREATE PROCEDURE execSQL
    (
    )
    BEGIN
        DECLARE strSQL varchar(500);
        SET strSQL = 'SELECT * FROM dc_mail';
        
        -- 定义用户变量(格式@,不需要定义它的数据类型) 
        set @sql =strSQL;
        -- 编译拼接的SQL字符串
        PREPARE _executeSql from @sql;
        -- 执行编译后的SQL语句
        EXECUTE _executeSql;
        
        -- 释放编译后的SQL语句
        DEALLOCATE PREPARE _executeSql;
    END
    
    CALL execSQL;
  • 相关阅读:
    上传和下载附件功能
    C#小常识,持续更新..
    动态添加HTML表单控件,无(runat="server")
    Excel技巧 持续更新..
    JS函数集锦 持续更新..
    JS 函数 检验输入是否为数字类型,正整数
    存储过程 游标 事例
    Sql 查询语句中的类型转换
    shell 计数脚本
    centos 获取文件的创建时间
  • 原文地址:https://www.cnblogs.com/superfeeling/p/13062784.html
Copyright © 2020-2023  润新知