将列数据从一个表复制到另一个表

时间:2014-04-18 07:49:01

标签: mysql sql

我有两个数据库,一个是,另一个是 new 。我需要将一个特定的列从旧的复制到新的。结构方面它们都是完全相同的,虽然新表明显大于旧表,并且我可以用外键将这两个表连接在一起的唯一方法是uni_id,这只是一个正常的整数域,但是它的独特之处。

所以这基本上就是表格的结构:

|    id    |    name    |    name_pseudo    |    uni_id    |
------------------------------------------------------------

我想将new_db.mytable的每一行与old_db.mytable uni_id进行比较,然后将old_db.mytable.name_pseudo插入new_db.mytable.name_pseudo

可以构建纯MySQL中的这种表达吗?

1 个答案:

答案 0 :(得分:1)

来自UPDATE

上的MySQL手册
  

您还可以执行覆盖多个表的UPDATE操作。但是,您不能将ORDER BY或LIMIT与多表UPDATE一起使用。 table_references子句列出了连接中涉及的表。其语法在第13.2.9.2节“JOIN语法”中描述。这是一个例子:

UPDATE items,month SET items.price=month.price
    WHERE items.id=month.id;

在您的情况下应该如下所示:

UPDATE newdb.mytable AS new, old_db.mytable AS old
    SET new.name_pseudo=old.name_pseudo
    WHERE old.uni_id=new.uni_id;