是否可以使用循环/函数/过程来创建具有相同结构的多个表? 我知道有一种“赞”的方法,但出于知识的原因,我也在寻找其他选择。
示例我想创建5个结构不同但名称不同的表: 表名: abc 定义 吉 k 莫诺 pqr
drop procedure if exists create_table;
DELIMITER //
create procedure create_table
(in str varchar(10))
begin
set @query = concat('create table str',
'`col1` varchar(20), `col2` float,',
'`col3` int(10), `date` date,');'
execute query;
end //
DELIMITER ;
call create_table(abc)
call create_table(def)
call create_table(ghi)
call create_table(jkl)
call create_table(mno)
什么都没用,因为它只创建了一个表名“ str”。
我希望我能解释我在寻找什么。
答案 0 :(得分:0)
我发现了我的错误,应该是
drop procedure if exists create_table;
DELIMITER //
create procedure create_table
(in str varchar(10))
begin
set @query = concat('create table,',str,);
set @query = concat('`col1` varchar(20), `col2` float,',);
set @query = concat('`col3` int(10), `date` date,');');
prepare s from @query;
execute s;
end //
DELIMITER ;
call create_table(abc)
call create_table(def)
call create_table(ghi)
call create_table(jkl)
call create_table(mno)