首页 > 数据库技术 > 详细

mysql - 存储过程

时间:2019-11-05 13:58:20      阅读:85      评论:0      收藏:0      [点我收藏+]

类似于java的方法

 

1. 创建:


DELIMITER $$   #设置存储过程结束标记,防止混淆,这个符号可以自己设,用完后要改回‘;‘
CREATE PROCEDURE pro_test( IN 参数名 类型 , OUT 参数名 类型, INOUT 参数名 类型)  #表示传入参数,输出参数,同时输入输出的参数,可以多个。
BEGIN
    #sql语句
END $$
DELIMITER ;

 

2. 使用:

call 存储过程名(参数列表)

 

例子1:无参数

DELIMITER $$
CREATE PROCEDURE pro_test_no_parameter()
BEGIN
    INSERT INTO userinfo VALUES(7,person1,1990-01-01);
END $$
DELIMITER ;

CALL pro_test_no_parameter();

命令行 和 sqlyog中不太一样- -sqlyog中可以的命令行一定可以, 命令行可以的sqlyog有时不好用。。。所以都用sqlyog测试

 

例子2:无参数有变量

DELIMITER $$
CREATE PROCEDURE pro_test_no_parameter1()
BEGIN
    DECLARE a INT;
    SET a = 8;
    INSERT INTO userinfo VALUES(a,person2,1990-02-02);
END $$
DELIMITER ;

CALL pro_test_no_parameter1();

 

例子3:有参数

#创建
DELIMITER $$
CREATE PROCEDURE pro_test_parameter( IN input INT, OUT output VARCHAR(20), INOUT param INT)
BEGIN
    SET param = param + 1;
    SELECT username INTO output FROM userinfo WHERE uid = input;
END $$
DELIMITER ;

#使用
SET @p = 2;
CALL pro_test_parameter(1, @output, @p);
SELECT @output,@p;  #显示结果

 

 

3. 删除:

drop procedure 存储过程名;

 

4.查看存储结构结构:

show create procedure pro_test_no_parameter;

 

不能修改内部的sql语句。

 

 

mysql - 存储过程

原文:https://www.cnblogs.com/clamp7724/p/11797884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!