2012-06-22 21 views
1

我们在两个不同的MySQL服务器上有两个表。我们有一个唯一的密钥,它是invoicedate从另一个表中回填表格;不能有重复

我们需要抓住一段时间内的所有记录,并将它们放到另一个表中。需要注意的是,可能有已经存在的记录,因此我们希望将这些记录从我们正在填写的记录中排除。

什么疑问,想法,脚本等会对实现这个目标最有帮助?

回答

2

如果您将唯一键添加到唯一标识记录(或字段组合)的字段上,则可以使用INSERT IGNORE INTO作为MySQL语句。这将插入记录,但是如果出现关键冲突(例如该记录已存在时),它将直接进入下一个记录。

您也可以使用REPLACE INTO而不是INSERT INTO,它与INSERT IGNORE INTO类似,但不会继续处理下一条记录,而会覆盖冲突的行。

0

看合并语法

TSQLmerge

+1

从kingcoyote第一+1 – Paparazzi

+0

问题是标签的MySQL(如果没有把握通过MOD或提问者)尝试答案,所以TSQL可能不恰当的。它似乎没有MySQL有一个'MERGE'命令。虽然,看起来像'REPLACE INTO',就像kingcoyote提到的那样,我在评论之前错过了,可能是一个可行的选择:http://blog.mclaughlinsoftware.com/2010/05/14/mysql-replace-into/ –

+0

@EricH当我第一次看时,我确信它在TSQL搜索中出现了。在接受kingcoyote之后会继续删除这个。 – Paparazzi

相关问题