• 締切済み

DBの全ユーザーテーブルに対するtruncate

PostgreSQLを勉強中の者です。 データベースの全ユーザーテーブルに対して、個別にtruncateをかけるいい方法を探しています。  \pset pager  \dt 以上のコマンドを実行して、テーブル一覧を表示できることをはわかったのですが、ここから先の妥当なやり方がわかりません。 リダイレクトして、テキストエディタで加工して、シェルのようなもので流し込む・・・のような形になるのでしょうか? 実例も含めて教えていただけると助かります。 また、truncateされたことの上手い確認方法もあれば御教示下さい。 よろしくお願いします。

みんなの回答

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

テーブル一覧が取り出せるならawkでなんとでもなりますよね。 table1 table2 table3 を TRUNCATE table1; TRUNCATE table2; TRUNCATE table3; としてテキストに書き出します。 で、実行なのですがこれでは新しく増えたテーブルも 自動で消してしまいますから 普通はTRUNCATEが書かれたテキストファイルに消したいテーブルを並べて 実行する形を取ります。 確認は select count(*) で件数表示してすべて0であることを確認すればいいですね。 重複行(0,0,0,0,0,,,,)を消せば簡単に確認できますね。

関連するQ&A