使用SQL查询在数据库之间传输数据

时间:2015-08-07 08:45:34

标签: mysql sql innodb

我更改了数据库的结构,需要将旧实例中的数据复制到新实例。由于表格的列已经改变,我不能简单地导出/导入数据。

我在移动数据方面取得了一些成功,但我现在遇到了以下问题。请考虑以下示例查询:

insert into gene_results (test_kit_id)
    select id
    from test_kits
    where tag = xploreyou_db_copy.gene_results.tag;

我收到以下错误:Unknown column 'xploreyou_db_copy.gene_results.tag' in 'where clause'

我绝对肯定该列存在,并且我之前已成功使用此语法。我很困惑为什么这突然不起作用。我在Sequel Pro中写了我的查询。数据库位于同一服务器上。

2 个答案:

答案 0 :(得分:1)

您需要加入该数据库

insert into gene_results (test_kit_id)
    select t1.id
    from test_kits as t1 inner join xploreyou_db_copy.gene_results as t2
    on t1.tag = t2.tag;

答案 1 :(得分:1)

  

其中tag = xploreyou_db_copy.gene_results.tag;

使用连接而不是上述查询中的位置

INSERT INTO gene_results
                         (test_kit_id)
SELECT        test_kits.id
FROM            gene_results AS gene_results_1 INNER JOIN
                         test_kits ON gene_results_1.tag = test_kits.tag