0
如何從現有表格中自動創建100個表格。表名想成爲table1,table2,table3 ... table100。我不想執行sql:「創建bable table2像table1」100次。提前致謝。如何用mysql中現有的表結構創建表?
如何從現有表格中自動創建100個表格。表名想成爲table1,table2,table3 ... table100。我不想執行sql:「創建bable table2像table1」100次。提前致謝。如何用mysql中現有的表結構創建表?
您可以創建一個存儲過程並調用一次。下面是從一個表test
變化在下面的過程中的循環值和表名創建5表名test1...test5
的一例
delimiter //
create procedure `create_tables`()
begin
declare x INT ;
set x = 1 ;
while x <= 5 do
set @qry = concat("create table test",x," like test ");
prepare stmt from @qry;
execute stmt ;
deallocate prepare stmt ;
set x = x + 1;
end while;
end ;//
delimiter ;
最後調用該過程作爲
call create_tables();
然後運行命令查看錶格
show tables;
這裏是一個在mysql cli中的測試用例
mysql> delimiter //
mysql> create procedure `create_tables`()
-> begin
-> declare x INT ;
-> set x = 1 ;
-> while x <= 5 do
-> set @qry = concat("create table test",x," like test ");
-> prepare stmt from @qry;
-> execute stmt ;
-> deallocate prepare stmt ;
-> set x = x + 1;
-> end while;
-> end ;//
Query OK, 0 rows affected (0.22 sec)
mysql> delimiter ;
mysql> call create_tables() ;
Query OK, 0 rows affected (0.74 sec)
mysql> show tables ;
+-----------------------+
| Tables_in_test |
+-----------------------+
| test |
| test1 |
| test2 |
| test3 |
| test4 |
| test5 |
+-----------------------+