カスケードでテーブルを切り捨てるときに、テーブルのすべてのシーケンスをリセットする方法はありますか?.
私はすでにこの投稿を読んでいます postgresでシーケンスをリセットし、id列に新しいデータを入力する方法
ALTER SEQUENCE seq RESTART WITH 1;
UPDATE t SET idcolumn=nextval('seq');
これは1つのシーケンスでのみ機能しますが、私の問題は、切り捨てられたテーブルのすべてのシーケンスを再起動することです。
TRUNCATE sch.mytable CASCADE;
これは3つの関連テーブルに影響します。つまり、3つのシーケンスを意味します。このシーケンスをワンショットで再開する解決策はありますか?.
TRUNCATE
ステートメントには、テーブル列に関連付けられたシーケンスをリセットする追加のオプションRESTART IDENTITY
があります。
TRUNCATE sch.mytable RESTART IDENTITY CASCADE;
CASCADE
が定義されている場合、影響を受けるすべてのテーブルのシーケンスがリセットされます。