我有两个具有相同架构的表。还有很多专栏!
我可以通过
更新相应表格中的记录update t1
join t2 on t2.id=t1.id
set t1.column1=t2.column1,
t1.column2=t2.column2...
where t2.columnx > 123;
但是我有很多田地,而且天生就是一个懒惰的混蛋,他宁愿刮牦牛并在SE上发帖而不是输入一个列列表(可能缺少1个)。
除了将列列表写入文本文件等的一些时髦的解决方案之外,是否有有效的mySQL语法跳过所有列的显式列表并且更像INSERT ... SELECT?
答案 0 :(得分:1)
REPLACE INTO t1 SELECT * FROM t2 WHERE columnx>123;
答案 1 :(得分:0)
尝试使用REPLACE INTO ... SELECT ...
语法http://dev.mysql.com/doc/refman/5.0/en/replace.html
REPLACE INTO t1 SELECT t2.* FROM t2, t1 WHERE t1.columnx>123 AND t1.id=t2.id;
警告!未经测试!
仅当表在id
列上具有唯一索引时,此代码才有效。