重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ちょっと疑問に思ったので、ご存知の方がいらっしゃればご教授下さい。

以下のようなデータを登録します。
id  名前
1  あいう
2  かきく
3  さしす

登録後に閲覧すると、上記の並びでちゃんと表示されるのですが、
続いて、id=2の「かきく」を修正・登録してから閲覧すると
id  名前
1  あいう
3  さしす
2  かきく

という風に並んで表示されます。PostgreSQLでは何をキーにして並びを
決めているのでしょうか? また、それは設定を変更することによって
変えることは可能でしょうか?
やりたい事は、修正などをしても一番最初に登録した並びを保持したい
のです。

プログラム側でidをキーにしてソートすれば済む話なのですが、PostgreSQL
側でできることは、できるだけPostgreSQL側で処理させた方が良いと思った
ので、質問させて頂きました。

どうぞ、よろしくお願い致します。

A 回答 (1件)

一定の順序で並べたければ、ORDER BYでソートする必要があります。


PostgreSQLは、何ら順序の保証をしていません。

=====抜粋(ここから)=====
7.5. 行のソート

ある問い合わせが1つの出力テーブルを生成した後(選択リストの処理が完了した後)、並べ替えることができます。並べ替えが選ばれなかった場合、行は無規則な順序で返されます。そのような場合、実際の順序は、スキャンや結合計画の種類や、ディスク上に格納されている順序に依存します。しかし、当てにはなりません。特定の順序で出力することは、明白に並べ替える処理を選択することでのみ保証されます。

ORDER BY句は並べ替えの順番を指定します。
=====抜粋(ここまで)=====

参考URL:http://www.postgresql.jp/document/pg813doc/html/ …
    • good
    • 0
この回答へのお礼

chukenkenkouさん、ご無沙汰しております。
そして、本当にいつもありがとうございます。
ちゃんと、マニュアルに目を通せば良いのですが、ついついOKWaveの
ようなコミュニティーを頼ってしまいます。(反省)
ご回答、ありがとうございました。

お礼日時:2006/05/24 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す