我有两个数据库,一个是旧,另一个是 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中的这种表达吗?
答案 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;