儲存過程,遊標。
阿新 • • 發佈:2021-08-08
遊標例子:
轉存資料從tb_user的姓名,手機號 轉移到bf_user中去
-- 定義語法結束符號 delimiter // -- 建立一個 名稱為 p2 的儲存過程 drop procedure if exists p2; create procedure p2() begin declare total int; -- 建立 用於接收遊標值的變數 declare name_read , phone_read varchar(20) character set utf8; -- 遊標預設的標誌 declare done int default 0; -- 宣告遊標 declare cur cursor for select username, phone from tb_user; -- 指定遊標迴圈結束時的返回值 declare continue handler for not found set done = 1; -- 開啟遊標 open cur; -- 初始化 變數 set total = 0; -- loop 迴圈 xxx: loop -- 根據遊標當前指向的一條資料 fetch cur into name_read, phone_read; -- 當 遊標的返回值為 1 時 退出 loop迴圈 if done = 1 then leave xxx; end if; -- todo insert into bf_user values (name_read, phone_read); -- 累計 set total = total + 1; end loop; -- 關閉遊標 close cur; -- 輸出 累計的結果 select total; end // delimiter; call p2();
執行之後