| id | category | name | sort_order |
|---|---|---|---|
| 1 | fruit | apple | 1 |
| 2 | fruit | grape | 2 |
| 3 | fruit | orange | 3 |
| 4 | Vegetables | carrot | 4 |
| 5 | Vegetables | garlic | 5 |
とした場合、sort_orderには任意で数字を設定します。
createの時点で連番にしたものですが、後々insert intoで追加しようと思いましたが、
3と4の間に新データを追加したい。
この場合、sqlでそれ以降のデータのsort_orderを自動的に連番にすることは可能ですか?どう書きますか?
期待結果
| id | category | name | sort_order |
|---|---|---|---|
| 1 | fruit | apple | 1 |
| 2 | fruit | grape | 2 |
| 4 | fruit | peach | 3 |
| 3 | fruit | orange | 4 |
| 5 | Vegetables | carrot | 1 |
| 6 | Vegetables | garlic | 2 |
postgresです。
失礼しました、12:50追記ーーーーーーーーーーーーーーーーーーー
これは、カテゴリーの中でに限定することは可能ですか?
カテゴリーfruitの2と3の間に新データ(peach)を追加したい。
1. sort_orderは何の順番ですか? nameの昇順ですか?
2. sort_orderだけでなくidも変更しますか?
1 = そのデータをweb上で表示する際に参考にする順番です。
2 = いいえ。insertの時に自動で採番されます。
あくまでもこちらが任意で設定する値ですが、既に設定してある(連番に設定した。特別なことはしてない)ものに、追加で差し込みをしたいと。
2と3の間に、新しいデータを入れたい場合、このまま入れると 1 2 2 (3) 3 4 5 となりますよね。なので、後続の値を4 5 と自動でつけれたらなと思ったんです。
しかし、他の方の回答を見ていただければわかる通り、それほど自由度は高くないと。一つずつupdateもしくは +1 でしていくことが必要になるそうです。
これにいたっては今確認中です。
回答3件
あなたの回答
tips
プレビュー