我希望每晚都进行 MySQL 转储。我已经有一个仅输出数据差异的解决方案,但我需要一种将数据导入回 MySQL 的方法,以便 MySQL 中的数据是 UPDATED 的,而不是 INSERTED (如果它已经存在)。例如,这是一个示例表:
Id | User | Account_Value | Created_At | Updated_At
1 | Bob | $100 | 2009-01-01 | 2009-01-01
2 | Ed | $200 | 2009-01-01 | 2009-01-01
然后第二天,表格是这样的:
Id | User | Account_Value | Created_At | Updated_At
1 | Bob | $50 | 2009-01-01 | 2009-01-02
2 | Ed | $200 | 2009-01-01 | 2009-01-01
当我在第二天进行数据导出时,它会正确输出如下内容:
INSERT into ACCOUNTS VALUES (1,'Bob', '$50', '2009-01-01', '2009-01-02')
但是,这将与已经存在的内容相冲突。我想要的是让它覆盖已经存在的东西。想法?
您可以在插入语句中添加“on duplicate key update”子句:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html