【问题标题】:Copy one column from one database to another将一列从一个数据库复制到另一个
【发布时间】:2012-01-15 21:01:03
【问题描述】:

我需要将一个数据库中的列中的内容复制到另一个数据库中的匹配列中,以便相同的内容进入具有相同 ID 的记录中。类似于以下伪内容:

SET database2.table1.columnA TO database1.table1.columnA WHERE database2.id = database1.id

【问题讨论】:

  • 你有一个数据库和一个列,但是你的场景中的在哪里?
  • 它们也相同,已编辑以反映这一点

标签: mysql sql database copy-paste


【解决方案1】:

如果其他人的列不同,您可以使用以下内容:

USE `old_database`;
INSERT INTO `new_database`.`new_table`(`column1`,`column2`,`column3`)
SELECT `old_table`.`column2`, `old_table`.`column7`, `old_table`.`column5` 
FROM `old_table`

【讨论】:

  • 你不能像在 INSERT 中那样做 SELECT old_table(column1,column2) 吗?
  • FROM 会抛出一个错误,因为我说表名不正确。但这绝对是正确的名字。说 SELECT old_table 和 FROM old_table 似乎有点重复,这可能是错误所在吗?
  • @Eoin 除非您希望来自不同列的数据有可能进入错误的位置。这是确保数据根据需要进入 1、2、3 的额外步骤。
【解决方案2】:

MySQL 使用语法:

update database1.table1, database2.table1
set database1.table1.columnA = database2.table1.columnA
where database1.table1.id = database2.table1.id;

【讨论】:

  • 谢谢。 Access 中的语法也兼容(同一个数据库中的两个表)。
  • 今晚我比以往更喜欢 MySQL。
  • 这里database1.table1.columnA的内容会被复制到database2.table1.columnA吗?反之亦然?
  • SET 子句确定会发生什么。 database1.table1.columnA-从database2.table1.columnA获取值。
【解决方案3】:

你可以use JOIN in an UPDATE statement:

UPDATE table1 t1 
JOIN database1.table1 as t2 ON
   t1.id = t2.id
SET
   t1.columnA = t2.columnA

【讨论】:

  • 试试看;我没有方便的 mySQL,所以语法可能仍然关闭,但这应该会让你走上正确的道路。
【解决方案4】:

当您的列不相同时,以下是有效的方法。

INSERT INTO `new_database`.`new_table`(`column1`,`column2`,`column3`)
SELECT `old_table`.`column2`, `old_table`.`column7`, `old_table`.`column5` 
FROM `old_database`.`old_table`

更新自 https://stackoverflow.com/users/3746968/elgoots - 无法将其正确粘贴到评论中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2012-04-16
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多