2012-02-07 7 views
4

私はそこに9レコードのテーブルを持っていますが、5番目と6番目のレコードの間に行を挿入したいと思います。Sqlの2つの既存の行の間にテーブルの行を挿入する方法

+2

なぜに主張すれば?テーブルをクエリするときに結果を並べ替えるのではないですか? –

+1

何のため?テーブルストレージ内の行の物理的な順序付けはパフォーマンスに何も意味しません。ほとんどのデータベースでは、求めるものは不可能です。 –

+0

私は彼が、例えば、リストの曲を別の曲の前の1つの位置について動かしたいと思うと思いますか? ... –

答えて

3

一般に、テーブルの特定の場所に行を挿入しないでください。

"order"の行が重要であり、特別なセマンティクスを持っている場合は、そのデータをテーブル構造の適切な列に反映させます。

次に、SELECT ... ORDER BY ...を使用して行をソートします。

9

あなたは

UPDATE mytable SET id = id + 1 where id > 5 ORDER BY id ASC 

insert into mytable (id,..) values (6,...) 
+1

ORDER BY id DESCを使用すると、下から上に向かってインクリメントし、IDエラーが重複しないようにする必要があります。 – postelrich

+0

@postelrichそうだよ! –

関連する問題