用另一列的数据替换列的数据相同的表名,相同的列名称不同的数据库名称

时间:2015-01-15 05:39:07

标签: php mysql sql-update sql-insert

将旧版本的prestashop更新为较新版本。无法创建查询以将列数据从源数据库迁移到目标数据库(相同的列和表名,不同的数据库名称)。

换句话说,我需要用源列的数据替换目标列的数据。这是我到目前为止的查询:

INSERT INTO `destination_db`.`destination_table` 
Select * FROM `source_db`.`source_table` 
on duplicate key UPDATE `destination_db`.`destination_table`.`destination_colum`=`source_db`.`source_table`.`source_column`;

运行查询后,结果如下:MySQL返回空结果集(即零行)

真正感谢任何修复查询的帮助。

1 个答案:

答案 0 :(得分:0)

尝试这一点,因为在我看来,你可能只是犯了一个小错误,你的语法是

你忘了把UPDATE {tableName} SET {column} = {sourceColumn}。

INSERT INTO `destination_db`.`destination_table` (`destination_db`.`destination_table`.'destination_column1',`destination_db`.`destination_table`.'destination_column2',`destination_db`.`destination_table`.'destination_column3')
SELECT 
       `source_db`.`source_table`.'source_column1',
       `source_db`.`source_table`.'source_column2',
       `source_db`.`source_table`.'source_column3'      
FROM 
        `source_db`.`source_table` 
ON 
     DUPLICATE KEY 
            UPDATE `destination_db`.`destination_table`.`destination_column1`=`source_db`.`source_table`.`source_column1`;