创建一个函数/过程/循环以在MYSQL中创建多个具有相同结构的表

时间:2019-12-05 20:22:35

标签: mysql

是否可以使用循环/函数/过程来创建具有相同结构的多个表? 我知道有一种“赞”的方法,但出于知识的原因,我也在寻找其他选择。

示例我想创建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”。

我希望我能解释我在寻找什么。

1 个答案:

答案 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)