gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 08:42:25 24 4
gpt4 key购买 nike

我有一个小问题。我有两个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com