sql >> データベース >  >> RDS >> PostgreSQL

タプルはデータベーステーブルに順番に挿入されませんか?

    これは誤解です。リレーショナルデータベーステーブルには「自然な」順序はありません。通常、行はテーブルを保持している物理ファイルに順番に挿入されますが、さまざまなアクティビティによって物理的な順序が変更される可能性があります。また、基本的な(並列化されていない)シーケンシャルスキャン以外のことを行うクエリは、任意の順序で行を返す可能性があります。これは標準SQLによるものです。

    ORDER BYを追加しない限り、表示される順序は任意です。 クエリに。

    pgAdmin3は、デフォルトで主キーで行を並べ替えます(特に指定されていない限り)。列のタイプはvarcharです 行はアルファベット順に並べられています(現在のロケールに従って)。すべて設計によるものであり、すべてあるべき姿です。

    期待どおりに行を並べ替えるには、テキストに「0」を埋め込むことができます。

    ...
    typename_0009
    typename_0010
    ...
    

    適切なソリューション ただし、数値だけの数値列を作成することになります。

    自然順に興味があるかもしれません。 serialにも興味があるかもしれません 列。



    1. MySQLクエリの文字列から数値をどのように抽出しますか?

    2. 1つの表に行がない可能性がある複数の表からの選択によるOracleInsert

    3. 複合インデックスはいつ使用する必要がありますか?

    4. 不正な整数(2147483647)がMySQLに挿入されていますか?