使用mysql儲存過程需要注意的

2021-08-04 04:34:30 字數 1375 閱讀 6089

main:

begin

declare done int default 0;

declare tid varchar(50);

declare cur cursor for select linkid from tmp_userservice_pool;

#parse order content to get every parameter

declare continue handler for not found set done=1;

#set autocommit=1;

delete from tmp_userservice_pool;

insert into tmp_userservice_pool select * from tb_userservice_pool where status=0 limit 100;

update tmp_userservice_pool set status=2;

update tb_userservice_pool set status=2 where linkid in (select linkid from tmp_userservice_pool);

open cur;

-- 開啟游標

-- 迴圈所有的行

repeat

fetch cur into tid;

if(!done) then

call pcd_userservice_mvhisone(tid);

end if;

until done

end repeat;

#commit;

close cur;

delete from tb_userservice_pool where linkid in (select linkid from tmp_userservice_pool);

end;

我們需要注意以下幾點

1,使用declare宣告變數時,要注意用變數來儲存表字段時,二者的字元編碼要一致。

2,mysql的字元合併不能使用「+」,而要使用concat函式。

3,使用游標時,每個游標要使用不同declare continue handler for not found set done=1;來控制游標的結束。

上面的這句**的意思就是說,當沒有返回資料時,程式繼續執行,並把done設定為1.控制游標的結束   

還有出現在select xx into *** from tablename的時候發生的,這個時候如果xx是null就會有問題.其實也可以這樣解決

select isnull(***x,0) into aaaa from tablename

這樣如果遇到null就為0了..

執行儲存過程需要注意的地方

對於儲存過程的執行來說不能使用以下方法 declare n int declare a int declare b int set n 1 while n 100000 begin set a ceiling rand 4 set b ceiling rand 6 exec dbo bl lead ...

OKR使用過程,需要注意的地方

okr是目標與關鍵成果法,是一套明確和跟蹤目標及其完成情況的管理工具和方法。okr有兩個基本的組成部分 目標和關鍵結果。目標是指設定乙個定性的時間內目標,通常是乙個季度。目標描述應該說明目標為何重要 他是如何同公司 部門目標關聯的,有哪些具體依賴 以及它所支撐或者依賴的內部客戶有哪些。關鍵結果是由量...

使用Calendar需要注意clear

date是前台傳的值,格式為2014 01 01的形式 如下的 是去date日期當月的最大天數日期 int month integer.parseint date.substring 5,7 取天數 int year integer.parseint date.substring 0,4 取年份 d...