2011-08-09 6 views
5

INSERTを行う方法はありますが、更新の代わりにDUPLICATE KEYを使ってSELECTを実行しますか?MySQLはありますか?INSERT ... ONデュプリケート・キー・セレクト?

+0

あなたのユースケースは、どういうものですか? –

+0

...なぜですか?正当な理由で「重複キー更新」があります。挿入が失敗すると、更新が意味をなさなくなります。一方、selectは、そうではありません。挿入を行うコードは、結果セットが戻ってくることを期待しません。 – cHao

+4

@cHao:たとえば、挿入/存在する行のIDを使用する場合は、文が値を返すようにします。 – Seffix

答えて

2

クエリは1つではありませんが、INSERT IGNORE <xxx>を実行してからSELECT <xxx>を実行してください。 IGNOREは、中止する代わりに重複したキーエラーを引き起こす行を無視します。

0

いいえ重複したキーエラーを確認し、SELECTクエリを発行する必要があります。

INSERTUPDATEのクエリはデータを変更するためのものであり、SELECTの結果セットを返すものであった場合は、かなり問題になります。正当な理由により、あらゆる種類のドライバ/インターフェースがこれらのケースを異なる方法で処理します。

関連する問題