mysql - 将一个表中的行插入到另一个表中,哪个表有额外的列?

标签 mysql database perl

我正在致力于将数据从一个 db1 迁移到另一个 db2。

我有一种情况,其中表 Person 存在于两个数据库(db1 和 db2)中。

但是 db2 中的表多了一列。这是编写查询以将数据从 db1 Person 迁移到 db2 Person 的最有效方法。

我写的如下,这是最好的写法吗?因为如果我有更多列并且只有一个额外列,因此我需要在循环语句中提及所有列名称。

$select = $dbh1->prepare("SELECT * FROM person");
$insert = $dbh2->prepare("INSERT INTO PERSON VALUES (?,?,?,?,?)");

$select->execute; 
while ( my($PR_ID,$NAME,$LASTNAME) = $select->fetchrow_array )
{
  $insert->execute($PR_ID,$NAME,$LASTNAME,'NULL','NULL');
}

最佳答案

如果源表和目标表中存在列不匹配,则使用如下语法 -

insert into table1(col1,col2,col3) select col1,col2,col3 from table2;

关于mysql - 将一个表中的行插入到另一个表中,哪个表有额外的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35269686/

相关文章:

MySQL 存储过程 - 删除忽略 'WHERE' 子句

c# - 帮助进行字节移位

perl - OTRS PostmasterMailbox.pl 解析/MIME 类型

mysql - 如何找到每个部门中薪水最高的员工?

c++ - 错误 : The connection is in autoCommit mode

mysql - 带有 "where in"子句的嵌套 MySql Select 语句

database - 最大连接池是否也限制了与数据库的最大连接数?

mysql - "Proper"存放MySQL数据库描述的地方

perl - 在 Perl/Gtk 中显示 CP437 ('extended ascii' )

Mysql列索引值