mysql儲存過程表作為變數

2021-10-14 08:25:30 字數 1648 閱讀 3092

create definer=`root`@`%` procedure `create_table_by_unit_top_id`( out  out_result int(8))

begin

#結束標識定義

declare edone int default 0 ;

#結果集

declare result_date varchar(5000) default '';

########替換變數開始-------------------

#定義游標臨時變數-------------------開始

declare index_merchant_id varchar (36);

#定義游標臨時變數***************====結束

#宣告游標 ----------------開始

#宣告游標cursor_name(cursor_name是個多行結果集)

declare cursor_name cursor for

select distinct unit_top_id from sys_unit ;

#宣告游標***************===結束

########替換變數結束***************====

#設定終止標誌

#declare continue handler for sqlstate '02000' set s=1;

declare continue handler for not found set edone = 1;

#重置游標

set edone = 0;

#二級迴圈開始

#開啟游標

open cursor_name;

#遍歷游標

while edone <> 1 do

#######替換變數開始------------------------------

#獲取游標當前指標的記錄,讀取一行資料並傳給變數a,b

fetch cursor_name into index_merchant_id;

set @tbl_name=concat("order_detail_item_",index_merchant_id);

set @statement = concat("create table ",@tbl_name," like order_detail_item; ");

prepare stmt from @statement;

execute stmt;

#sql開始

select index_merchant_id;

set result_date = concat(result_date,',',index_merchant_id);

#sql結束

#結束游標變成了1,游標只要有值就不會走end whil

end while;

#關閉游標

close cursor_name;

#二級迴圈結束

select edone;

-- 賦值結果,先查詢再賦值

select result_date;

set out_result=result_date;

end

MySQL儲存過程 變數

mysql變數定義 選中資料庫,更改執行分隔符 use 資料庫名 修改執行分隔符 delimiter 第一種建立過程方法 帶引數方式 帶參方法一 variable 為變數名 int 為變數型別 in 輸入引數 表示該引數的值必須在呼叫儲存過程之前指定,在儲存過程中修改的值不能被返回 不會影響到傳入引...

mysql儲存過程表 mysql儲存過程和表命令

show procedure status 2.顯示某個儲存過程的詳細資訊 sp為儲存過程名稱 show create procedure sp 3.顯示當前庫中所有表 show tables 4.顯示某個表的建表語句 test為表名 show create table test 5.刪除儲存過程 ...

MySql儲存過程 3 變數

1 變數的定義 在mysql裡面可以像我們寫 中一樣定義變數來保持中間結果,看下面的格式 declare variable name datatype size default default value declare相當於關鍵字,有點類似var,表示定義乙個變數 然後variable name是...