僅學習使用,不建議使用這種方法批量更新資料。原因請小夥伴們搜尋一下儲存過程和游標的優缺點。
drop
procedure
ifexists fix_receipt_time;
-- 將結束符換為//,為了避免語法錯誤
delimiter
//-- 建立儲存過程
create
procedure fix_receipt_time(
)begin
-- 定義變數
declare s int
default0;
declare target_credit_record_id int(11
);declare target_receipt_time timestamp
;-- 定義游標,並將sql結果集賦值到游標中
declare credit_record_cursor cursor
forselect cr.id,sr.receipt_time from tb_credit_record cr join tb_service_record sr on sr.id = cr.service_record_id where cr.receipt_time is
null
;-- 宣告當游標遍歷完後將標誌變數置成某個值
declare
continue
handler
fornot found set s=1;
-- 開啟游標
open credit_record_cursor;
-- 將游標中的值賦值給變數,注意:變數名不要和返回的列名同名,變數順序要和sql結果列的順序一致
fetch credit_record_cursor into target_credit_record_id,target_receipt_time;
-- 當s不等於1,也就是未遍歷完時,會一直迴圈
while s<>1do
-- 執行業務邏輯
update tb_credit_record set receipt_time = target_receipt_time where id = target_credit_record_id;
-- 將游標中的值再賦值給變數,供下次迴圈使用
fetch credit_record_cursor into target_credit_record_id,target_receipt_time;
-- 當s等於1時表明遍歷以完成,退出迴圈
endwhile
;-- 關閉游標
close credit_record_cursor;
end;
//-- 將結束符換回;
delimiter
;-- 執行儲存過程
call fix_receipt_time(
)
生成修改記錄
生成修改記錄 使用方法 將source insight搜尋結果儲存為0829.txt 將該檔案儲存為 pl和0829.txt放在同一目錄下,雙擊執行 結果在生成的result.txt中 use strict my eachfile,line,output,prev,count,ret,prev pa...
DDOM修改記錄
1 完整多個類的clone方法,實現為clone deep false 形式 2 完整各個元素的clear 和destory 方法,但是還是存在一些隱患 第一,clear的行為不統一,存在只釋放列表還是子元素也釋放的不統一行為,為保整與舊 的相容性只能小心地改。3 提公升一些移除 所有 子元素操作的...
git檢視修改記錄
檢視檔案中每行 的最近一次修改人 git blame file name git blame git blame l 100,100 git blame l 100,10檢視最近兩次變動及其變動點 git log p 2顯示增改行統計 git log statgit log pretty 選項,可以...