プロが教えるわが家の防犯対策術!

DB2 UDBで以下のようなINSERT文を発行した場合、

insert into TABLE_A
values(行1), (行2), (行3);

テーブルへの格納順序が、
行1
行2
行3
のようにならないこともありますか?

AIXにDBサーバーがある、
Webアプリケーションからの、
INSERT文です。
ちなみに、
クラスター索引などは
使われていません。

ご教示お願いします。

A 回答 (2件)

#1です。

DB2は知らないのでとんでもない勘違いをしているかもしれませんが。

「格納順が違っている」ことを、どのようにして確認しておられるのでしょうか。結局「データを取得」後、表示しているのではないでしょうか?
リレーショナルDBは、「指示」が無い限り、出力順(取得順)に関して、何の保証もしない(次回も同じとは限らない)ものと理解しています。
外しているか(^^;
    • good
    • 0
この回答へのお礼

何の保証もしない(次回も同じとは限らない)
のですね。
あまり詳しくなかったもので、
格納順が優先されるのだと思っていました。

それというのも、
SQL文のORDER BY句で指定した順番以外の順番が、
該当テーブルをSELECT*(ソートなし)で全件取得した際の結果の順番と、まったく同じだったので。

お礼日時:2006/06/15 14:09

DB2は知りません(^^;


で、リレーショナルDB一般に関していえば、「格納順序」に意味はない(意味を持たせない)と考えています。順序が必要であれば明示的に(フィールドを利用し)書き込むべきと。
    • good
    • 0
この回答へのお礼

ありがとうございます。

アプリケーションでデータを取得する際は、
ソート等を考えれば、
問題ないですよね。

今回、格納順に依存したプログラムが発見され、
修正はともかく、
発生する場合と、しない場合があるということを
どう説明しようかと、考えておりました。

お礼日時:2006/06/14 11:54

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

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