私の質問はちょっと簡単です。
PostgreSQLのalterexpression内でサブクエリを使用することは可能ですか?
主キー列の値に基づいてシーケンス値を変更したい。
次の式を使ってみましたが、実行されませんでした。
シーケンスの変更public.sequenceXrestart with(select max(table_id)+1 from table)
前もって感謝します
私はあなたがそのようにそれをすることができるとは思わないが、あなたは変更がすることであるsetval関数方向を使うことができるはずである。
select setval('sequenceX', (select max(table_id)+1 from table), false)
Falseを指定すると、指定されたとおりに次のシーケンス番号が返されます。
さらに、大文字と小文字が混在するオブジェクト名があり、次のようなエラーが発生した場合:
ERROR: relation "public.mytable_id_seq" does not exist
... regclassを使用する次のバージョンが役立つはずです。
select setval('"public"."MyTable_Id_seq"'::regclass, (select MAX("Id") FROM "public"."MyTable"))