質問 |
||
| 質問者:pug_mk | データ登録・更新時の並びについて | |
|---|---|---|
困り度:
|
ちょっと疑問に思ったので、ご存知の方がいらっしゃればご教授下さい。 以下のようなデータを登録します。 id 名前 1 あいう 2 かきく 3 さしす 登録後に閲覧すると、上記の並びでちゃんと表示されるのですが、 続いて、id=2の「かきく」を修正・登録してから閲覧すると id 名前 1 あいう 3 さしす 2 かきく という風に並んで表示されます。PostgreSQLでは何をキーにして並びを 決めているのでしょうか? また、それは設定を変更することによって 変えることは可能でしょうか? やりたい事は、修正などをしても一番最初に登録した並びを保持したい のです。 プログラム側でidをキーにしてソートすれば済む話なのですが、PostgreSQL 側でできることは、できるだけPostgreSQL側で処理させた方が良いと思った ので、質問させて頂きました。 どうぞ、よろしくお願い致します。 |
|
質問投稿日時:06/05/24 12:04 質問番号:2171774 |
||
回答良回答20pt |
|
| 回答者:chukenkenkou | 一定の順序で並べたければ、ORDER BYでソートする必要があります。 PostgreSQLは、何ら順序の保証をしていません。 =====抜粋(ここから)===== 7.5. 行のソート ある問い合わせが1つの出力テーブルを生成した後(選択リストの処理が完了した後)、並べ替えることができます。並べ替えが選ばれなかった場合、行は無規則な順序で返されます。そのような場合、実際の順序は、スキャンや結合計画の種類や、ディスク上に格納されている順序に依存します。しかし、当てにはなりません。特定の順序で出力することは、明白に並べ替える処理を選択することでのみ保証されます。 ORDER BY句は並べ替えの順番を指定します。 =====抜粋(ここまで)===== |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:自信あり |
|
| |
回答日時:06/05/24 13:03 回答番号:No.1 |
|
| 参考URL: | http://www.postgresql.jp/document/pg813doc/html/queries-order.html |
| この回答へのお礼 | chukenkenkouさん、ご無沙汰しております。 そして、本当にいつもありがとうございます。 ちゃんと、マニュアルに目を通せば良いのですが、ついついOKWaveの ようなコミュニティーを頼ってしまいます。(反省) ご回答、ありがとうございました。 |