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

SELECT内の一時的なシーケンス

    シリアルを追加してみませんか テーブルの主キー列?

    ALTER TABLE login ADD column login_id serial;
    ALTER TABLE login ADD CONSTRAINT login_pkey PRIMARY KEY(login_id);
    

    最初の操作はテーブルを書き換えてしばらくの間ロックを取ります。それから実行します

    VACCUM FULL ANALYZE login;
    

    劣った選択肢: row_number() @Joachimが指摘 として 。最高のパフォーマンスを得るには、 OVERをそのままにしておくことができます 空の句:

    row_number() OVER () AS rn
    

    余談ですが、 ASを使用してください 列エイリアスのキーワード(テーブルエイリアスの単なるノイズです)。

    または、 ctid<を使用できます。 / code> 主キーの貧乏人の代理として。それはさらに高速になります :

    詳細:
    順序どおりのシーケンス生成

    dba.SEの例:
    複数のテーブルの行に連続して番号を付ける



    1. 数値の2つの配列を比較し、phpで重複を削除します

    2. SQLServerの論理AND演算子とは-SQLServer/TSQLチュートリアルパート120

    3. データベース列に存在する文字列を確認する方法は?

    4. PostgreSQL9.3を使用した動的ピボットクエリ