2011-08-09 33 views
5

有沒有辦法做一個INSERT,但是,重複鍵,而不是一個更新做一個選擇?有沒有MySQL ..插入...在重複鍵選擇?

+0

究竟什麼是你的使用情況爲那一個? –

+0

...爲什麼?有'重複密鑰更新'有一個很好的理由;如果插入失敗,更新是有意義的。另一方面,選擇不會 - 編寫插入代碼不會期望返回結果。 – cHao

+4

@cHao:例如,當您想要使用插入/存在行的ID時,您會希望語句返回一個值。 – Seffix

回答

2

不在一個查詢,但你不需經過運行INSERT IGNORE <xxx>然後SELECT <xxx>IGNORE使其忽略任何可能觸發重複鍵錯誤而不是暫停的行。

0

號你將不得不看的重複鍵錯誤然後提出你的SELECT查詢。

如果自從INSERTUPDATE查詢用於修改數據並且SELECT返回結果集以來就會出現問題。出於充分的理由,各種驅動程序/接口不同地處理這些情況。