2017-12-16 8 views
1

解決策を探しています。私は私のPostgresデータベース内のすべてのテーブルを切り捨てるしようとしています:スキーマ内のスクリプトテーブルを切り捨てることができません

私は多くの関係が存在しないため、残念ながら、それは動作しません

SELECT 'TRUNCATE ' || table_name || ';' 
FROM information_schema.tables WHERE table_schema='sda' AND table_type='BASE TABLE'; 

単純なSQLスクリプトを使用しています。

助けてください。

t=# create schema sda; 
CREATE SCHEMA 
t=# create table sda."BASE TABLE"(); 
CREATE TABLE 

試し:

t=# SELECT format('TRUNCATE %I;',table_name) 
    FROM information_schema.tables WHERE table_schema='sda' AND table_type = 'BASE TABLE'; 
     format 
------------------------ 
TRUNCATE "BASE TABLE"; 
(1 row) 
t=# TRUNCATE "BASE TABLE"; 
TRUNCATE TABLE 

ので、私はあなただけのテーブルに識別子を処理していないと仮定し、のような:

t=# TRUNCATE BASE TABLE; 
ERROR: syntax error at or near "TABLE" 
LINE 1: TRUNCATE BASE TABLE; 

を準備

+0

'tablename FROM pg_catalog.pg_tables where shemaname = 'sda''で試すことができますが、それはあなたのやり方と多かれ少なかれ同じです。より多くの情報を提供することができますか?サンプル出力、またはinformation_schemaにあり、DBに存在しないテーブルは何ですか? –

+0

[この質問](https://stackoverflow.com/questions/2829158/truncating-all-tables-in-a-postgres-database)にチェックを入れてください。 –

答えて

0

(私は、PostgreSQL 9.2を使用しています)また、大文字と小文字の間にスペースがあると、人間の誤りにつながることが多く、標準のケース名を使用しなくなります。

+0

私はそれを修正しました。私が指定されたテーブルのために応答可能なユーザーとしてログインしていなかったために見つけられない関係 –

関連する問題