1
我有一个INSERT INTO ... ON DUPLICATE KEY UPDATE查询,由于某种原因被mysql服务器忽略,至少据我所知。什么会导致upsert失败(不插入任何行)?
它捕捉到现有行的更新。
我有一个“id”的主键,part_no被列为Unique。
下面是该查询:
INSERT INTO parts_prices (cost,
chatsworth,
atlanta,
north_carolina,
new_jersey,
arizona,
colorado,
miami,
indianapolis,
ohio,
oregon,
dallas,
san_antonio,
washington,
memphis,
alt_sup,
part_no)
VALUES (0.00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 'HS3163')
ON DUPLICATE KEY UPDATE
cost=VALUES(cost), chatsworth=VALUES(chatsworth), atlanta=VALUES(atlanta), north_carolina=VALUES(north_carolina), new_jersey=VALUES(new_jersey), arizona=VALUES(arizona), colorado=VALUES(colorado), miami=VALUES(miami),
indianapolis=VALUES(indianapolis), ohio=VALUES(ohio), oregon=VALUES(oregon), dallas=VALUES(dallas), san_antonio=VALUES(san_antonio), washington=VALUES(washington), memphis=VALUES(memphis), alt_sup=VALUES(alt_sup)
第一列是一个小数,然后一堆整数的,最后两个是VARCHAR处理。这是零件清单数据库中的条目(我们碰巧列出了零件号码,但实际上并没有它)。我遍历所有零件编号的列表(通过使用last_modified列),并且此特定查询不更新时间戳。
难道这是因为该行中的信息实际上并未发生变化(所有指定的值都与初始值相同)?
该查询适用于(相当多)数据库中以前的条目。
我在PHP脚本的查询中检查了响应错误并直接(使用phpmyadmin),它们不返回任何错误字符串。 [/编辑]
谢谢!像魅力一样工作!我会尽快接受你的回答。 – Riet