12
あるDBから別のDBにテーブルデータをコピーするスクリプトがありますが、新しいレコードが宛先テーブルに挿入されたときにID列がバックアップされます。nextval(seq)
間違った値を返しています。nextvalが次の未使用のIDであるようにrestart
次の利用可能なIDから開始するようにシーケンスを更新する必要があります。上記ただし、構文エラーを生成
ALTER SEQUENCE seq_id RESTART WITH
(SELECT MAX(id) FROM tbl);
:
は、私のような何かをしたいです。
誰にでも代替方法を提案できますか?
おかげで、エコーはpsqlのにパイプとして、私はこれを実行している..あなたは私を伝えることができますコマンド全体を1つにエスケープする方法は? – pstanton
'alter sequence'文を動的に構築するのではなく、' setval'関数を使うことができます。よりシンプルですが、これらを1つずつ実行している場合は、実際の違いはありません。 – araqnid