私は約30行のテーブルを持っています。 3行目に新しい行を挿入する必要があります。私は手動で 'id'値を与えて、自動インクリメントが残りの部分を処理することを期待していましたが、プライマリキーに「重複エントリ」エラーが出ています。新しい行をMySQLの特定の場所に挿入します
これを回避する手段はありますか?これは一回限りの修正だから、私は '柔軟な'ソリューションなどは必要ありません。
ありがとうございました!
私は約30行のテーブルを持っています。 3行目に新しい行を挿入する必要があります。私は手動で 'id'値を与えて、自動インクリメントが残りの部分を処理することを期待していましたが、プライマリキーに「重複エントリ」エラーが出ています。新しい行をMySQLの特定の場所に挿入します
これを回避する手段はありますか?これは一回限りの修正だから、私は '柔軟な'ソリューションなどは必要ありません。
ありがとうございました!
あなたは、ID = 3で行を挿入する前にこの更新プログラムを実行します。あなたはすべてのレコードを削除し、あなたがそれらをしたいために、それらを再挿入でき
update your_table set id=id+1 where id >= 3;
を、それは必ずしもあなたが戻りますという意味ではありませんそれらは正しい順序で表示されます。
結果が特定の順序で必要な場合は、SQLでorder by句を使用します。
なぜ特定の順序でテーブルにレコードを配置する必要がありますか?
小さな仕様を追加したいと思います。IDフィールドがPRIMARY KEYの場合、コマンドでエラーメッセージ(重複エントリ)が表示されます。 しかし、レコードが処理される順序(ID値がIDの値よりも小さいもの)を変更すると、コマンドは失敗しません。 UPDATE your_table SET id = id + 1どこのid> 3 ORDER BY DESCが良いですか? – rfellons