MySQL不支援動態表名

2021-07-07 09:35:50 字數 1199 閱讀 8081

今天寫乙個資料遷移的儲存過程,用到了動態表名,發現mysql不支援直接使用變數做表名。然後就用下面的方式來做了。

drop procedure if exists p_transfer_data;

delimiter //

create procedure p_transfer_data()

begin

declare v_dbname varchar(100) default database();

declare v_tabname varchar(100);

declare flag int default 0; /*是否達到記錄的末尾控制變數*/

declare v_cur cursor for select table_name from information_schema.tables where table_schema=v_dbname and table_name like 't_2%' order by table_name desc;

declare continue handler for not found set flag = 1;

open v_cur;

fetch v_cur into v_tabname;/*獲取第一條記錄*/

while flag <> 1 do

set @preparable_stmt1=concat("insert into t_x(id_,name) select id_,name ",v_tabname);

set @preparable_stmt2=concat("insert into t_y(id_,area) select id_,area from ",v_tabname);

prepare preparable_stmt1 from @preparable_stmt1;

prepare preparable_stmt2 from @preparable_stmt2;

execute preparable_stmt1;

execute preparable_stmt2;

fetch v_cur into v_tabname;/*取下一條記錄*/

end while;

close v_cur;

end;

//delimiter ;

-- call p_transfer_data();

mysql不支援 MySQL不支援的特性

mysql 1 不支援物化檢視。2 不支援位圖索引。3 不支援並行查詢。4 不支援雜湊關聯,mysql的所有關聯都是巢狀迴圈關聯。不過,可以通過建立乙個雜湊索引來曲線實現。5 不允許對同一表同時進行查詢和更新。報錯 update tb1 as outer tb1 set cnt select cou...

jquery validate不支援動態生成的表單

jquery validate 外掛程式為表單提供了強大的驗證功能,讓客戶端表單驗證變得更簡單,同時提供了大量的定製選項,滿足應用程式各種需求。該外掛程式 了一套有用的驗證方法,包括 url 和電子郵件驗證,同時提供了乙個用來編寫使用者自定義方法的 api。基本用法如下 一 匯入 js 庫 scri...

mysql不支援top 支援limit

今天偶爾發現mysql居然不支援top語句,之前用hibernate記得用過top語句。原因是 mysql的確是不支援top語句,之前用的是hql語句,是hibernate幫你翻譯成mysql支援的語句的。通常hibernate的用法 select top 5 id,name,password fr...