最新消息: 新版網站上線了!!!

mysql存儲過程(自定義函數之)declare continue handler for sqlstate '02000' set

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1; #當fetch游標到了數據庫表格最后一行的時候,設置s=1


02000 主要代表的意思可以理解為:

發生下述異常之一:

SELECT INTO 語句或 INSERT 語句的子查詢的結果為空表。

在搜索的 UPDATE 或 DELETE 語句內標識的行數為零。

在 FETCH 語句中引用的游標位置處于結果表最后一行之后。

就是說你定義了,當fetch游標到了數據庫表格最后一行的時候,設置s=1


create function project() returns VARCHAR(300)
begin
DECLARE proName VARCHAR(300);
DECLARE proNo VARCHAR(50);
DECLARE s int DEFAULT 0; #定義變量s
 DECLARE ProjCRowCur CURSOR FOR select _name,_no from techmanage.tech_project;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1; #當fetch游標到了數據庫表格最后一行的時候,設置s=1
DECLARE pid int; 
 OPEN ProjCRowCur;
 SET proName='';
 SET proNo='';
 FETCH ProjCRowCur INTO proName,proNo;
while s<>1 DO
select id INTO pid from techmanage.nodes_hierarchy where name = proName;
insert into smart_quality.nodes_hierarchy (name) values (proName);
FETCH ProjCRowCur INTO proName,proNo;
END WHILE;
CLOSE ProjCRowCur;
return proName;
end


.....

轉載請注明:谷谷點程序 » mysql存儲過程(自定義函數之)declare continue handler for sqlstate '02000' set

体彩25选5开奖号码