遍歷庫中所有表, 更新指定欄位為指定的值。(*有的表存在該欄位,有的則不存在)
我的mysql學習心得(十) 自定義儲存過程和函式drop
procedure
ifexists update_orgcode;
delimiter//
create
procedure update_orgcode(in send_system varchar(50),in upload_org_code varchar(50),in provider_name varchar(50))
begin
declare tablename varchar(30);
/* 遍歷游標結束標誌 */
declare done int default 0;
declare err,err2 int default 0;
/* 定義預處理sql語句 */
declare sql_for_update varchar(500);
/* 申明游標 */
declare rs cursor for select table_name from information_schema.tables where table_schema='ehr10';
/* 游標異常處理 */
declare continue handler
forsqlstate
'02000'
set done = 1;
/*when "not found" occur,just continue,這個是個條件處理,針對not found的條件*/
/* update 異常處理1 */
declare continue handler
for1054
set err = 1;
/*when "unknown column 'send_system' in 'field list'" occur,just continue,這個是個條件處理,針對not found的條件*/
/* update 異常處理2 */
declare continue handler
for1062
set err2 = 1;
/*[err] 1062 - duplicate entry '10839-xianfengyl-xianfengyl' for key 'primary'" occur,just continue,這個是個條件處理,針對not found的條件*/
/* 開啟游標 */
open rs;
/* 獲取表名 */
fetch rs into tablename;
/* 遍歷開始 */
repeat
set sql_for_update = concat("update ",tablename," set send_system = '",send_system,"',upload_org_code='",upload_org_code,"',provider_name='",provider_name,"';");
-- 拼接查詢sql語句
set @sql = sql_for_update;
prepare stmt from @sql; -- 預處理動態sql語句
if err then set err = 0;
-- 預處理sql 不成功, 改變 重置 err
else -- 預處理 sql 成功, 執行 update sql
execute stmt ; -- 執行sql語句
deallocate prepare stmt; -- 釋放prepare
endif;
if err2 then select tablename;
set done = 1;
-- 輸出表名,退出遍歷
endif;
/* 除錯 */
-- select tablename;
/* 獲取表名 */
fetch rs into tablename;
/* 遍歷結束 */
until done end repeat;
/* 關閉游標 */
close rs;
end;
//delimiter;
mysql儲存過程詳解
mysql儲存過程之游標遍歷資料表
mysql儲存過程—7、游標(cursor)
mysql儲存過程除錯?
mysql 儲存過程中使用動態sql語句
mysql儲存過程中捕獲異常的方法
mysql儲存過程之異常處理篇
mysql儲存過程(一)
使用mysql也挺久了,但是對於mysql的儲存過程一直沒有研究過,最近得空看了一些資料,對儲存過程算是略有了解吧,下面就是學習過程中的一些心得體會了。在正式介紹儲存過程之前我們需要知道什麼是儲存過程?通過上述語句我們可以提煉以下幾點 1.儲存過程是特定功能sql語句的集合 2.儲存過程儲存在資料庫...
MYSQL儲存過程一
b 一 儲存過程 b 儲存過程是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定的儲存過程的名字 並給出相關引數來執行它。b 二 優點 b 1 較快的執行速度。如果某一操作包含大量的sql語句或者分別被多次執行,那麼儲存過程比批處理的執行速度要快。因為儲存過程是預編譯的,在...
mysql儲存過程 MySQL儲存過程
在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...