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

Postgresにすでに存在する列にシーケンスを作成できますか

    まず、デフォルト値に使用するシーケンスを作成する必要があります。

    create sequence linelevelpmts_seq_seq;
    ALTER TABLE public.linelevelpmts 
        ALTER COLUMN seq SET DEFAULT nextval('linelevelpmts_seq_seq'::regclass);
    

    serialとして作成された場合と同じ効果が必要な場合 シーケンスの「所有者」も変更する必要があります:

    alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;
    

    編集

    Igorのコメントは良いものです:列seqにすでに値がある場合 シーケンスの開始値を調整する必要があります:

    select setval('linelevelpmts_seq_seq', (select max(seq) from linelevelpmts));
    



    1. リクエストとpsycopg2を使用してPostgresでJsonを作成/挿入します

    2. PostgreSQLでサポートされているタイムゾーンのリストを返す

    3. SQLServerの「ピボット」を使用して行を列に変換する

    4. SQLite-データベースファイルを開くことができませんでした