mysql 儲存過程 動態表名

2021-06-14 16:09:29 字數 566 閱讀 2474

想寫乙個儲存過程,實現不同的庫下不同表的查詢功能,發現表名傳遞跟其他變數不一樣

delimiter //

create procedure proc()

begin

set @v_databasename = 'unibiz0122013';

set @v_tablename = 'mail_open_05';

set @v_sql = concat('select  * from ',@v_databasename,'.',@v_tablename);

prepare stmt from @v_sql;  --預編譯

execute stmt;  --執行

deallocate prepare stmt; --釋放資源

end;

//這個是我寫的乙個列子,查詢語句需要拼接起來,不能直接寫成select * from v_databasename.v_tablename

而且需要執行的sql語句,必須用@variable形式

執行完需要deallocate 釋放,當然mysql自己也會釋放,為了安全起見,還是手動寫上比較好

儲存過程動態表名

create or replace procedure bxsp data qb startdate in varchar2,開始日期 enddate in varchar2,結束日期 feetype in varchar2,費用型別 procesnode in varchar2,流程節點 audi...

儲存過程動態表名時變數的輸出

處理資料時遇到下面這個問題.貼出解決辦法 問題描述 在儲存過程中我定義了兩個引數,filed代表乙個列,tablename代表表名,乙個變數 sqlstr代表sql語句,以下語句 select sqlstr select top 1 field from tablename exec sqlstr ...

Mysql儲存過程名規則 MySQL儲存過程(一)

1.1create procedure 建立 createprocedure儲存過程名 引數列表 beginsql語句 塊end 注意 在mysql客戶端定義儲存過程的時候使用delimiter命令來把語句定界符從 變為 當使用delimiter命令時,你應該避免使用反斜槓 字元,因為那是mysql...