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);


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM