mysql创建存储过程及调用

创建存储过程简单示例:

DELIMITER //
CREATE PROCEDURE ccgc()
BEGIN
SELECT * FROM TEXT;
SELECT * FROM s_user;
END
//DELIMITER ;

//调用
CALL ccgc()

创建带参数的存储过程:

DELIMITER //
CREATE PROCEDURE ccgc2(IN c_name VARCHAR(32))
BEGIN
    SELECT * FROM TEXT WHERE NAME = c_name;
    SELECT * FROM s_user;
END
//DELIMITER ;

//调用
CALL ccgc2(参数)

 

创建输出参数存储过程

DELIMITER //
CREATE PROCEDURE ccgc3(OUT c_name VARCHAR(32))
BEGIN
    SET c_name = '666';
    SELECT c_name;
END
//DELIMITER ;

//调用
CALL ccgc3(@c_name)

 

输入输出和变量

DELIMITER //
CREATE PROCEDURE ccgc7(INOUT c_name VARCHAR(32))
BEGIN
    DECLARE hh VARCHAR(32) DEFAULT '1111111111';
    SELECT * FROM TEXT WHERE NAME = hh;
END
//DELIMITER ;

CALL ccgc7(@c_name)

 

总结:

1)  如果仅仅想把数据传给MySQL存储过程,那就用in类型参数;  
2)  如果仅仅从MySQL存储过程返回值,那就用out类型参数;  
3)  如果需要把数据传给MySQL存储过程经过计算再传回给我们,那就用inout类型参数。 

查看存储过程;SHOW CREATE PROCEDURE proc_name;

查看函数:SHOW CREATE FUNCTION func_name;

删除存储过程:DROP PROCEDURE proc_name;

删除函数:DROP FUNCTION func_nmae;

 

jpa者mybatis sql调用直接执行CALL ccgc()即可,例:

@Query(value = "call ccgc()",nativeQuery = true)
public List<Map<String,Object>> findZdy(Map<String,Object> map);


 

posted @ 2019-11-25 15:38  _Lawrence  阅读(1247)  评论(0编辑  收藏  举报