有時候僅憑 sql 語句可能達不到想要的數據操做目的,有可能須要寫一些方法體,經過循環判斷等操做最終達到目的。那麼在數據庫裏實現這種方法體就須要存儲過程了,我的以爲一個帶註釋的簡單實例能夠簡單粗暴地解決大部分問題,固然要深刻學習瞭解的話仍是要看教程文檔了,話很少說,上碼:mysql
- create procedure my_procedure()
- begin
- declare my_id varchar(32);
- declare my_name varchar(50);
- DECLARE done INT DEFAULT FALSE;
-
- DECLARE My_Cursor CURSOR FOR ( SELECT id, name FROM t_people );
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-
- OPEN My_Cursor;
- myLoop: LOOP
- FETCH My_Cursor into my_id, my_name;
- IF done THEN
- LEAVE myLoop;
- END IF;
-
- UPDATE t_user SET c_name = my_name WHERE id = my_id and rtrim(ltrim(c_name)) = '';
-
- COMMIT;
- END LOOP myLoop;
- CLOSE My_Cursor;
- END;
sql 調用存儲過程sql
sql 刪除存儲過程數據庫
- drop procedure my_procedure;
End .oop