您可以按照以下过程动态创建表。此过程中唯一的问题是它正在创建具有相同名称的表。玩这个代码。我在mysql中创建了这段代码。先决条件是您必须以连接形式传递字段名称,例如“col1,col2,col3”。
分隔符 $$
创建过程 dynamic_table (col_concat varchar(2000),out query1 varchar(1000))
开始
声明 i 整数;
声明 v_count int;
声明 v_col varchar(100);
设置 i =1;
选择 LENGTH(col_concat) - LENGTH(REPLACE(col_concat, ',', ''))+1 进入 v_count;
set query1 =(select concat('create table table',convert(i,signed),'('));
而 (i<= v_count)
做
开始
选择替换(substring_index(col_concat,',',i),',','_') 到 v_col;
设置 query1 = (select concat(query1, v_col,' varchar(1000), '));
设置 i=i+1;
结尾;
结束时;
选择查询1;
设置查询1=替换(查询1,子字符串(查询1,长度(查询1)-1,1),')');
选择查询1;
结束;$$
示例运行:调用 dynamic_table ('col1,col2,col3',@query1)