2017-06-11 9 views
0

新しく挿入された行がSELECT * FROM tablenameに表示される最初の行になるように、dbテーブルに行を挿入しますか?データベースの挿入方法は?

通常、DB挿入は既存のrow0の下にrow1を挿入し、select文は最初にr0を返し、次にr1を返します。言い換えれば、キューのように振る舞います。

今、r2を挿入して、r2がr0の前に現れるようにしたいのですか?

+0

本当に問題はありますか?あなたがそれらをどのように表示するか考えてください。 – maSTAShuFu

+4

'SELECT'に明示的な' ORDER BY'を指定しない場合、返される行の順序は**未定義です**保証されません。 ** INSERT'を注文しようとすることは絶対にありません* - 注文を達成する唯一の方法は**あなたの 'SELECT'に' ORDER BY' **節を明示的に定義することです.... –

+1

"既存のrow0の下にrow1を挿入し、select文は最初にr0を返し、次にr1を返します。つまり、キューのように動作します。 "いいえ、それは完全に間違っています。 –

答えて

3

ORDER BY句のない選択文の順序は決定的ではなく、データを照会するたびに異なることがあります。あなたが求めていることを達成する正しい方法は、SELECT文でORDER BYを使用し、その列でテーブルと結果のランクを保持するカラムを持つことです。パフォーマンスを向上させるために、その列をクラスタード・インデックスとして使用できます。

関連する問題