如何在 MySQL 中合并两个表?我已经查看了有关此主题的其他几篇文章,但它们对我来说不够详细。
我是 MySQL 新手,所以请耐心等待,我有一个主表和一个临时表,如下所示:
CREATE TABLE
temp_import
(id
int(11) NOT NULL auto_increment,
Name
varchar(255) default NULL,
MerchantID
int(11) default NULL,
SKU
varchar(255) default NULL,
PRIMARY KEY (id
) ) ENGINE=MyISAM AUTO_INCREMENT=765811 DEFAULT CHARSET=utf8;
我将数据插入到临时表中,如下所示:
LOAD DATA LOCAL INFILE \'29762.txt\' REPLACE INTO TABLE temp_import FIELDS TERMINATED BY \'|\' OPTIONALLY ENCLOSED BY \'"\' LINES TERMINATED BY \'\n\' (Name, MerchantID, SKU);
每个表格的表格格式都是一样的,但是数据会随着时间的推移而变化。有些项目的数据机会,但 SKU 保持不变。某些项目将不再提供,需要从数据库中删除。
例子:
当前数据库表:
1, dog, 101, dog101
2, cat, 101, cat101
3, chicken, 102, chicken100
4, chicken food, 102, chicken101
新数据库表:
1, dog, 101, dog101
2, cat, 102, cat101
3, chicken, 102, chicken100
5, Frog, 103, frog101
最终结果应该是
1, dog, 101, dog101
2, cat, 102, cat101
3, chicken, 102, chicken100
5, Frog, 103, frog101
删除了鸡肉食品,添加了青蛙,更新了猫。
这也需要尽可能高效。我将处理一些大文件。它可以是 MySQL 唯一的代码。
http://www.xaprb.com/blog/2006/02/21/flexible-insert-and-update-in-mysql/ 我看过这个,但它在我头上,当我尝试这样做时它没有不工作...