こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

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

PostgreSQLを勉強中の者です。
データベースの全ユーザーテーブルに対して、個別にtruncateをかけるいい方法を探しています。

 \pset pager
 \dt

以上のコマンドを実行して、テーブル一覧を表示できることをはわかったのですが、ここから先の妥当なやり方がわかりません。
リダイレクトして、テキストエディタで加工して、シェルのようなもので流し込む・・・のような形になるのでしょうか?

実例も含めて教えていただけると助かります。

また、truncateされたことの上手い確認方法もあれば御教示下さい。
よろしくお願いします。

投稿日時 - 2017-11-14 21:55:58

QNo.9397423

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

テーブル一覧が取り出せるならawkでなんとでもなりますよね。
table1
table2
table3

TRUNCATE table1;
TRUNCATE table2;
TRUNCATE table3;
としてテキストに書き出します。
で、実行なのですがこれでは新しく増えたテーブルも
自動で消してしまいますから
普通はTRUNCATEが書かれたテキストファイルに消したいテーブルを並べて
実行する形を取ります。

確認は
select count(*) で件数表示してすべて0であることを確認すればいいですね。
重複行(0,0,0,0,0,,,,)を消せば簡単に確認できますね。

投稿日時 - 2017-11-14 22:37:09