dev机上数据库中批量生成table

我的低效方法:

通过本地php脚本进行create:

<?php
//0-63
header("Content-type:text/html;charset=utf-8");
$conn = mysql_connect('localhost','root','') or die (mysql_error());
$db = mysql_select_db('test',$conn) or die(mysql_error());
for($i=10;$i<64;$i++){
    $sql =<<<SQL
          CREATE TABLE karate_final_{$i}(
        xxxx
        xxxx
)ENGINE InnoDB AUTO_INCREMENT 73 DEFAULT CHARSET=utf8 COMMENT='stored everyones info list'; SQL; mysql_query($sql, $conn) or die(mysql_error($conn)); } mysql_close($conn); ?>

发现效率很低,同时由于dev的连接网速不稳定且慢,create到9就结束了。

新方法:

先在dev机的数据库中创建karate_final_tmp, 在本地通过脚本生成SQL语句,

CREATE TABLE karate_final_{$i} LIKE karate_final_tmp;

粘贴到workbench,共计64条,执行。

//LIKE 关键字: 创建的table完全复制LIKE后面的表的结构

//另可以参考LIKE 与 SELECT关键字在此处使用的不同

 1 <?php
 2 //0-63
 3 header("Content-type:text/html;charset=utf-8");
 4 $conn = mysql_connect('localhost','root','') or die (mysql_error());
 5 $db = mysql_select_db('test',$conn) or die(mysql_error());
 6 
 7 for($i=0;$i<64;$i++){
 8     $sql .= <<<SQL
 9           CREATE TABLE karate_final_{$i} LIKE karate_final_tmp;<br />
10 SQL;
11 }
12 mysql_close($conn);
13 echo $sql;
14 ?>
原文地址:https://www.cnblogs.com/niceforbear/p/4721165.html