码迷,mamicode.com
首页 > 数据库 > 详细

mysql 存储过程

时间:2019-03-14 15:07:21      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:例子   inf   nbsp   select   status   val   定义变量   返回   函数   

mysql存储过程

首先 先了解存储过程用法:

-- 不带参数的存储过程:
    创建存储过程
    DELIMITER //
    CREATE PROCEDURE text01()  #创建存储过程名字
    BEGIN      
        SELECT * FROM infolist;  #需要执行的操作    
        END
    //
    DELIMITER ;

-- 使用存储过程
    call text01        #使用这个存储过程

没有注解得是固定格式.

 

-- 带传入参数存储过程(in 参数):
    -- 创建存储过程
    DELIMITER //
    CREATE PROCEDURE text02(in num int)  #依旧是创建存储过程的名字,但是在括号 in关键字 变量名 变量类型
    BEGIN
    SELECT * FROM infolist where id=num;    #执行的操作
    END
    //
    DELIMITER ;
        
-- 使用存储过程
    set @num=2        #定义变量
    call text02(@num)    #将变量传入到存储过程中

 

-- 带传入参数存储过程(out 参数)
    delimiter //
    create procedure text03(out mydata int)   #out关键字 定义变量mydata 整型
    begin
    select id into mydata from infolist where id=1;  #将id 传递(into)给变量mydata
    end
    //
        delimiter ; 

-- 使用存储过程
    set @num = 0;
    call text03(@num);
    select @num;

 

-- 带传入参数存储过程(inout 参数)
    delimiter //
    create procedure text04(inout num int)
    begin
    set num := num *50;
    end
    //
        delimiter ; 

--使用存储过程
    set @num = 177;
    call text04(@num);
    select @num;

 

应用场景:

我现在有一台主机,一台主机内有两个内存条 我已经获取到了主机的信息.

现在已经建立了 主机表 以及内存表,其中内存表有一个外键指向主机ID

我现在要插入主机数据,同时增加主机表信息,以及内存表信息.

    # 存储过程定义
    delimiter //
    create procedure t1_add_t2(in t1_name varchar(255),in t2_name varchar(255))
    begin
    insert into t1(name) values(t1_name);
    insert into t2(name,t1_id) VALUes(t2_name,LAST_INSERT_ID());
    end
    //
    delimiter ;

    # 使用存储过程
    set @t1_name = anec;
    set @t2_name = school_master;
    call t2_add_t1(@t1_name,@t2_name);

 

删除存储过程:

删除存储过程
 drop procedure 存储过程名;

查看有哪些存储过程

# 查看有哪些存储过程
show procedure status;

 

mysql 内置系统函数:

row_count()  #得到操作行数

row_count();  得到操作行数。(单独用没用)
例子:插入数据
INSERT test(username) VALUES(A),(B),(C); 
SELECT ROW_COUNT(); //返回被插入的记录总数 结果为3

 

last_insert_id()  #返回 最后一次插入自增列的id

select LAST_INSERT_ID();

 

mysql 存储过程

标签:例子   inf   nbsp   select   status   val   定义变量   返回   函数   

原文地址:https://www.cnblogs.com/Anec/p/10530239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!