[Postgres]すべてのシーケンスを1にリセットするSQLを生成する。

下記のSQLで、すべてのシーケンスを1にリセットするSQLを生成することができます。

SELECT    'SELECT setval(''' || c.relname || '', 1, false);'
FROM      PG_CLASS AS c 
LEFT JOIN PG_USER  AS u ON c.relowner = u.usesysid 
WHERE     c.relkind = 'S'
ORDER BY  c.relname;



出力結果がSQL文になっているので、コピーして実行すればリセットできます。
特定のシーケンスだけ取得したい場合は、WHEREを工夫するか、クリアしたいテーブルだけSQL実行すればよいです。

関連記事

コメントを残す

メールアドレスが公開されることはありません。