このようなテーブルが与えられた場合、x と y には一意の制約があります。
id,x,y 1、1、1 2、1、2 3、2、3 4、3、5 ..
UPDATE ステートメントを使用して、一連の行の値 x と y を一定量増やしたいと考えています。両方を 1 ずつ増やしているとします。UPDATE は id 順に従っているようで、1 2 で行を更新した後にエラーが発生します。これは、3、4 に更新されていない次の行 2 3 と衝突するためです。まだ。
グーグルで調べてみると、UPDATEに注文を強制的に使用させる方法が見つかりません。私のアプリケーションでは、逆にそれを行うだけで十分です。また、更新全体の後、セットが一貫していると確信しています。
解決策はありますか?注文を更新に強制する方法、または完了するまで制約チェックを延期する方法はありますか?
これは Django アプリケーション用であり、サポートされているすべてのデータベースと互換性があることを意図しています。一部のデータベースにはアトミック トランザクションがあり、この問題が発生しないことはわかっていますが、一部のデータベースにはこの問題を回避する機能がありますが、厳密に標準的な SQL ソリューションが必要です。