2011-08-09 32 views
5

有没有办法做一个INSERT,但是,重复键,而不是一个更新做一个选择?有没有MySQL ..插入...在重复键选择?

+0

究竟什么是你的使用情况为那一个? –

+0

...为什么?有'重复密钥更新'有一个很好的理由;如果插入失败,更新是有意义的。另一方面,选择不会 - 编写插入代码不会期望返回结果。 – cHao

+4

@cHao:例如,当您想要使用插入/存在行的ID时,您会希望语句返回一个值。 – Seffix

回答

2

不在一个查询,但你不需经过运行INSERT IGNORE <xxx>然后SELECT <xxx>IGNORE使其忽略任何可能触发重复键错误而不是暂停的行。

0

号你将不得不看的重复键错误然后提出你的SELECT查询。

如果自从INSERTUPDATE查询用于修改数据并且SELECT返回结果集以来就会出现问题。出于充分的理由,各种驱动程序/接口不同地处理这些情况。