2017-05-06 23 views
0

の同じ値が、私はこのように見ているテーブルを更新する必要があります。アップデートエラーが - 主キー

enter image description here

プライマリキーが複合である - id_planupor_cislo

新しい行を追加するときなど。 id_planu = '8' AND por_cislo = '5'は、私は問題がありますpor_cislo = por_cislo+1

ようpor_cislo > 5を持つすべての行をインクリメントする必要があるので、私はそれを行うとき:それは'6'あった場所

UPDATE table SET por_cislo = por_cislo+1 WHERE id_planu = '8' AND por_cislo > '5' 

por_cislo = '7'の値が設定されています。だから私は受け取ったエラーの理由が主キー(8,7)の同じ値を持つ2つの行があります。

どうすれば正しい方法で行う必要がありますか?

+0

。あなたは、別のレコードのためにキーを再使用し、すべてのものに対応することを望まない。新しいキーで新しいレコードを生成し、古いものを再利用しないでください。 – Glenn

答えて

0

必要なのは、次のようなORDER BY句を追加することです:良いアイデアのような音はありません主キーを変更 UPDATE table SET por_cislo = por_cislo+1 WHERE id_planu = '8' AND por_cislo > '5' ORDER BY por_cislo DESC