如果该行的主键在插入时已经存在,Mysql会自动替换行吗?

时间:2011-10-16 06:23:56

标签: php mysql

我正在构建一个web-scrapper,它从网站中提取数据并将其存储在数据库表中。 该表的主键是{timestamp + websitename}。从该网站获取时间戳的地方。这种情况每30分钟发生一次。

有两种可能性     a)我获得了相同的数据增益     b)内容在该网站上进行了编辑,但自创建时间(此帖子的时间段)以来,主键仍保持相同,并且网站名称保持不变。

现在我不想检查使用PHP天气是否存在相同的主键。我只是想将数据推送到数据库而不给我完整性约束错误。我想这样做是为了提高效率。有没有办法在Mysql中做到这一点?

简单来说,如果已经存在具有相同主键的行,只需将其替换为当前状态而不会对我产生完整性约束。

2 个答案:

答案 0 :(得分:2)

是的,有REPLACE INTO个陈述。

描述了一个很好的摘要和警告here

答案 1 :(得分:0)

如果您使用简单插入,请查看: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html