xとyに固有の制約があるこのような表があるとします。SQLの更新を注文しました
id,x,y 1, 1,1 2, 1,2 3, 2,3 4, 3,5 ..
私は、UPDATE文で一定量の行のセットの中の値xとyを増やすことをお勧めします。私はそれらを両方とも1ずつ増やしているとします。UPDATEがIDの順番に従っているように見え、1,2行目を更新した後にエラーが出ます。次の行に衝突します。まだ。
私はグーグルで、UPDATEを使用して注文を使用する方法を見つけることができません。それを逆にすることは、私のアプリケーションには十分です。私はまた、セット全体が更新後に一貫していると確信しています。
すべてのソリューションはありますか?アップデートに注文を強制する何らかの方法、または完了するまで制約チェックを延期する方法はありますか?
これはDjangoアプリケーションのためのもので、サポートされているすべてのデータベースと互換性があります。私はいくつかのデータベースが原子的なトランザクションを持っていることを知っています。この問題は起こらないでしょうし、この問題を避けるための機能がいくつかありますが、私は厳密に標準的なSQLソリューションが必要です。
どのDBMS? PostgreSQL?オラクル? DB2? –
ようこそStackOverflowへ。 SQLの質問をするときは、使用しているデータベースのタグも追加すると役に立ちます。それらの間に構文と機能にはさまざまなバリエーションがあり、そうすることでより迅速に役に立つ回答を得ることができます。質問を編集して追加することができます。ありがとう。 :) –
私がobsで述べたように、これはDjangoアプリケーションのためのものであり、サポートされているすべてのデータベースで使用されることを意図しているので、一般的な解決策が優れています。私はテスト用にSQLiteを使って開発していますが、 'a_horse_with_no_name'で与えられた答えから、私は問題がOracleでは起こらないと想定しています。 –