存儲過程中的變量


變量必須先聲明,后使用,一個declare只能申明一個變量

變量賦值有兩種方式1.set 2.select into

delimiter $$
CREATE PROCEDURE procedureUseVariable ( )

BEGIN
  DECLARE myname VARCHAR(20) DEFAULT '';
  set myname='想查出的名字';
  select pname into myname from person where pid=2;
  select myname;
END;
$$

delimiter ;
call procedureUseVariable();

如果最后想輸出myname,只需要在代碼塊中select myname;即可

舉個栗子,想要把學生數和人數放在兩個變量中

delimiter $$

create procedure procedureCountGroup()

begin

declare scount int default 0;

declare pcount int default 0;

select count(*)  into scount from student;

select count(*)  into pcount from person;

select scount,pcount;

end;

$$

 結果如下

begin end是可以嵌套的,舉個栗子:想查出兩個表的人數和當前時間


delimiter $$
CREATE PROCEDURE procedureCountGroup ( )
BEGIN
BEGIN
DECLARE time TIMESTAMP;
SELECT max(CURRENT_TIME) INTO time from person;
SELECT time;
END;
BEGIN
DECLARE scount INT DEFAULT 0;
DECLARE pcount INT DEFAULT 0;
SELECT count( * ) INTO scount FROM student;
SELECT count( * ) INTO pcount FROM person;
SELECT scount, pcount;
END;
END;
$$

delimiter ;
call procedureCountGroup();

 

這樣可以一次查出兩個結果集,想要將結果集合並,可以將某些參數設置為全局變量,只需要在外圍的begin end中定義變量即可。

也就是說變量的作用域就是定義變量所在的begin end之間,否則變量無效。

 


免責聲明!

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



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