php - 导出数据库中所有表的某些列

标签 php mysql phpmyadmin

我有一个小问题。我有两个 MySQL 数据库,我想将所有表从一个数据库移到另一个数据库,但当我使用正常的 PHPMyAdmin 导出时,它会因为我的 ID 列而出现错误。如何将整个数据库复制到另一个数据库中,除非不在 PHPMyAdmin 中复制该表?另外,我不能只手动复制表格,因为我有很多表格。我知道这可能涉及循环数据库中的所有表。有人知道一种方法吗(如果使用 PHP 我没问题)?
所有表的结构完全相同,并遵循以下结构:

id int NOT NULL AUTO_INCREMENT, # The one I don't want to copy (it is also a primary key)
col1 varchar(5), # Want to copy all of these.
col2 varchar(15),
col3 varchar(1000),
col4 varchar(20)

我想要做的就是将所有表从一个数据库复制到另一个数据库,除非不复制 id每个条目的列。因此,例如,如果我只是手动添加一个条目,我会使用 CREATE TABLE IF NOT EXISTS mytable ... ,然后 INSERT INTO mytable (col1, col2, col3, col4) VALUES (value1, value2, value3, value4) 。请注意,我没有插入 id专栏。

最佳答案

您可以编写 PHP 脚本来获取所有表并进行循环以插入到新表中。如果结构相同,那么复制所有它们应该更容易。这里的想法:

获取所有表

$sql = "SHOW TABLES FROM DB1";
$query = mysql_query($sql);    

// save the result as $old_tables

$sql = "SHOW TABLES FROM DB2";
$query = mysql_query($sql);    

// save the result as $new_tables

循环结果并插入到其他表中,如果不存在则创建:

foreach($old_tables as $table){
    if(!in_array($table, $new_tables)){
        // create table with the name $table in DB2
    }

    $sql = "INSERT INTO DB2.$table(col1, col2, col3, col4) SELECT col1, col2, col3, col4 FROM  DB1.$table";
    mysql_query($sql);
}

最简单的方法是使用数据库管理工具,如 SQLYog、Navicat 等。

关于php - 导出数据库中所有表的某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438082/

相关文章:

php - 如何有效地使用 laravel 5.5 eloquent 进行复杂的连接和分组

mysql - 高效的 SQL 查询

mysql - Unicode 电子表格到 MySQL

php - 没有数据怎么选NULL,有数据就显示?

php - 2 Mysql查询行数和主查询?

php - TinyMce 专注于 Chrome

mysql - 如何让phpmyadmin上的列具有相同的数据值?

mysql - 无法通过 XAMPP 连接到 MySQL

php - 在 Laravel 中通过 TwigBridge 加载 Twig 扩展

javascript - php - 使用 mpdf 工具从 googlemap 内容创建 pdf