1. 程式人生 > 資料庫 >mysql儲存過程用法例項分析

mysql儲存過程用法例項分析

本文例項講述了mysql儲存過程用法。分享給大家供大家參考,具體如下:

概述:

簡單的說,就是一組SQL語句集,功能強大,可以實現一些比較複雜的邏輯功能,類似於JAVA語言中的方法;

儲存過程跟觸發器有點類似,都是一組SQL集,但是儲存過程是主動呼叫的,且功能比觸發器更加強大,觸發器是某件事觸發後自動呼叫;

示例

DELIMITER //
CREATE PROCEDURE proc (IN num INT)
BEGIN
SELECT * FROM v9_qd_account limit num;
END //
DELIMITER ;

執行:

SET @p_in=5;
CALL proc(@p_in);

或者

CALL proc(5);

迴圈

DECLARE num int default 5;
SET num = 1;
SET num = num + 1;

DELIMITER //
CREATE PROCEDURE proc(IN sname VARCHAR(20),IN pwd VARCHAR(5),IN qd INT,IN start INT,IN end INT)
  begin
  DECLARE var INT;
  DECLARE myname VARCHAR(30);
  SET var=start;
  while var<end do
    SET myname = CONCAT(sname,LPAD(var,3,'0'));
    insert into v9_qd_account (storename,password,qudao,regdate) value(myname,md5(pwd),qd,UNIX_TIMESTAMP());
    SET var=var+1;
  end while;
  end //
DELIMITER ;

呼叫

CALL proc('test','123456',1,21);

檢視

SHOW PROCEDURE STATUS LIKE 'C%' \G; 檢視以字母C開頭的儲存過程
SHOW CREATE PROCEDURE proc \G; 檢視狀態和建立語句
information_schema.Routines 中檢視

刪除

DROP PROCEDURE IF EXISTS proc;
DROP FUNCTION mytest;

點撥

如果引數中有中文可以這樣

CREATE PROCEDURE useInfo(IN u_name VARCHAR(50) character set gbk,OUT u_age INT) ......

更多關於MySQL相關內容感興趣的讀者可檢視本站專題:《MySQL儲存過程技巧大全》、《MySQL常用函式大彙總》、《MySQL日誌操作技巧大全》、《MySQL事務操作技巧彙總》及《MySQL資料庫鎖相關技巧彙總》

希望本文所述對大家MySQL資料庫計有所幫助。