mysql 存儲過程簡單例子

#存儲過程測試
#無內容返回
DELIMITER $$

DROP PROCEDURE IF EXISTS `getCount` $$
CREATE PROCEDURE `getCount`()
BEGIN
  SELECT 'Hello Word!' ;

END $$
DELIMITER ;


#存儲過程測試 if語句
DELIMITER $$
DROP PROCEDURE IF EXISTS `getCount` $$
CREATE PROCEDURE `getCount`()
DETERMINISTIC
BEGIN
if (select phone_mun from 0110033_content where phone_mun='13471159875' limit 1)=13471159875
then
delete from 0110033_content where phone_mun='13471159875';
end if;
END $$
DELIMITER ;



#存儲過程測試 if else語句
DELIMITER $$
DROP PROCEDURE IF EXISTS `getCount` $$
CREATE PROCEDURE `getCount`()
DETERMINISTIC
BEGIN
if (select dates from count_db where dates='20140213')=2014-02-13
then
select serviceid,all_count from count_db where  dates='2014-02-13';
else
insert into  count_db (serviceid,all_count,dates,company) SELECT serviceID,count(*),CURRENT_DATE,left(sourcePeer,8) FROM sms_cmpp.cmpp3_transmitter where   (serviceID='WBHD' or serviceID='DXKJKS' or serviceID='MGJ' or serviceID='-DXZD')  group by serviceID;
select serviceid,all_count from count_db ;
end if;
END $$
DELIMITER ;


#存儲過程測試 if else語句 傳參數
DELIMITER $$
DROP PROCEDURE IF EXISTS `getCount` $$
CREATE PROCEDURE `getCount`(in name varchar(10),in dbname  varchar(10)) #設置傳遞參數的長度和類型
DETERMINISTIC
BEGIN
SET @dbname=12;
select name;
set @tems=select * from @dbname
exec(@tems)
END $$
DELIMITER ;



#存儲過程測試 if else語句 傳參數作爲select條件
DELIMITER $$
DROP PROCEDURE IF EXISTS `getCount` $$
CREATE PROCEDURE `getCount`(in name varchar(10)) #
DETERMINISTIC
BEGIN

if (select dates from count_db where dates=name limit 1)=name
then
select serviceid,all_count,dates from count_db where  dates=name limit 10;
else
insert into  count_db (serviceid,all_count,dates,company) SELECT serviceID,count(*),CURRENT_DATE,left(sourcePeer,8) FROM cmpp3_transmitter where   (serviceID='WBHD' or serviceID='DXKJKS' or serviceID='MGJ' or serviceID='KSCS')  group by serviceID;
#insert into  count_db (serviceid,all_count,dates,company) values(1,1,name,1);
select serviceid,all_count,dates from count_db ;
end if;
END $$
DELIMITER ;




#存儲過程測試 if else語句 傳參數作爲select條件
DELIMITER $$
DROP PROCEDURE IF EXISTS `getCount` $$
CREATE PROCEDURE `getCount`(in name varchar(10),in dbname varchar(10)) #
DETERMINISTIC
BEGIN
if (select dates from count_db where dates=name limit 1)=name
then
select serviceid,all_count,dates from count_db where  dates=name limit 10;
else
insert into  count_db (serviceid,all_count,dates,company) SELECT serviceID,count(*),CURRENT_DATE,left(sourcePeer,8) FROM dbname.cmpp3_transmitter where   (serviceID='WBHD' or serviceID='DXKJKS' or serviceID='MGJ' or serviceID='KSCS')  group by serviceID;
select serviceid,all_count,dates from count_db ;
end if;
END $$
DELIMITER ;

DELIMITER $$
DROP PROCEDURE IF EXISTS `getzj` $$
CREATE PROCEDURE `getzj`()
DETERMINISTIC
BEGIN
 declare i int;
 set i=0;
 while i<5 do

    DECLARE cnt INT DEFAULT 0;
    select id into cnt from  cjyh_t1 order by rand() limit 1;
    select cnt;
    if (select id from cjyh_zj where id=cnt limit 1)=''
    then
    insert into cjyh_zj select * from cjyh_t1  where id=cnt  limit 1;
     set i=i+1;
    end if;


end while;

END $$
DELIMITER ;




DELIMITER $$
DROP PROCEDURE IF EXISTS `getzj` $$
CREATE PROCEDURE getzj()
DETERMINISTIC
BEGIN
 declare i int;

    DECLARE cnt INT DEFAULT 0;
     set cnt=0;
    while i <5 do
    select id into cnt from  cjyh_t1 limit 1;
    select cnt;
    if (select id from cjyh_zj where id=cnt limit 1)=''
    then
    insert into cjyh_zj select * from cjyh_t1  where id=cnt;
     set i=i+1;
    end if;
end while;
END $$
DELIMITER ;

DELIMITER $$
DROP PROCEDURE IF EXISTS `getzj` $$
CREATE PROCEDURE getzj()
BEGIN


SET @y='Goodbye Cruel World';  
select @y;




DELIMITER $$
DROP PROCEDURE IF EXISTS `getzj` $$
CREATE PROCEDURE getzj()
DETERMINISTIC
BEGIN
delete from cjyh_zj;
delete from cjyh_t1nogroup;
insert into cjyh_t1nogroup select * from cjyh_t1 group by phone_mun;
insert into cjyh_zj select * from cjyh_t1nogroup  where lb='fcwx' order by rand()  limit 20;
insert into cjyh_zj select * from cjyh_t1nogroup   where lb='A' order by rand() limit 5;
insert into cjyh_zj select * from cjyh_t1nogroup   where lb='P' order by rand() limit 5;
insert into cjyh_zj select * from cjyh_t1nogroup  where lb='ttfc' order by rand()  limit 4;
END $$
DELIMITER ;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章