OK、質問はIDを返す方法ではなく、スキップする方法に似ています... last_insert_id()を使用して最後に挿入された行のIDを取得する状況がありますが、ゼロを取得したい場合は行は挿入されません。問題は次のとおりです。
- 挿入...いくつかのレコードを更新:行が新しく挿入されたため、すべてのIDが返されます
- 次に、プロセスを繰り返します。今回はIDは返されません。わーい!それはまさに私が欲しいものです
- 1つの列の値を変更して、プロセスを繰り返します。しかし、列の値を変更した行のIDが返されます。これにより、非常に腹を立てています。何も挿入されていない場合、mysqlがIDを返さないようにします
要約すると:
- 新しいレコードを挿入する場合:IDが返されます
- 同一のレコードを挿入する場合:IDは返されません
- 値を更新する場合:更新された行の更新されたIDが返されます:(
これに対する回避策はありますか?
mysqlはおそらく同一のレコードに対して更新を実行しないため、これが発生することはわかっていますが、それでも...これを回避する方法を知りたいと思います。