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

postgresqlシーケンスの値のリストを指定する方法

    このように機能する可能性があります:

    -- DROP SCHEMA x CASCADE;
    CREATE SCHEMA x;
    CREATE TABLE x.priv_id(seq_id int primary key, id int);
    
    INSERT INTO x.priv_id
    SELECT generate_series(1,100,1), (random() * 1000)::int;
    
    CREATE SEQUENCE x.priv_seq;
    
    SELECT id
    FROM   x.priv_id
    WHERE  seq_id = (SELECT nextval('x.priv_seq'));
    

    主なポイント:

    1)2つの数値を使用してルックアップテーブルを作成します
    -seq_id 1と主キーから数えています。
    -id は順番に並んだ番号です(ここでは乱数を置き換えました)。
    2)ヘルパーシーケンスを作成します。
    3)上記のようなSELECTを使用して番号を取得します。
    副選択、またはすべてが必要です。値はすぐに返されます。

    このソリューションは、すべてのセキュリティを nextval() に提供します。 並行性を提供する必要があります。
    カスタムIDが一意であることを確認する場合は、priv_id(id)に一意のインデックスを作成します。



    1. テーブルの名前を「NOW()+old_table_name」に変更します

    2. フィルター処理されたインデックスとINCLUDEd列

    3. MySQLODBC接続を閉じる/プールする

    4. PostgreSQLの根性:「resjunk」とは何ですか?