6
データベースに暗黙的な順序がないことを証明する方法は?
最近、たとえば、時間順にデータを並べ替える必要がある場合に、データベーステーブル内のデータを並べ替える列を持つことの重要性を同僚に説明していました。これは、クエリを一見無限に再実行でき、常に同じ順序で同じ行セットを返すため、やや難しいことがわかりました。 これに気づいたことがありますが、実際にできることは、データベーステーブルが従来のCSVファイルまたはExcelファイルのように動作することを単純に想定するのではなく、彼らが私を信頼していると主張することだけです。 たとえば、(PostgreSQL)クエリの実行 create table mytable ( id INTEGER PRIMARY KEY, data TEXT ); INSERT INTO mytable VALUES (0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j'); 明確な概念的順序でテーブルを作成します。同じデータを最も簡単な方法で選択すると、次のようになります。 SELECT * FROM mytable; 常に次の結果が得られます。 id | data ----+------ 0 | …