|
Re: lug-bg: POSTGRES "truncate all"
- Subject: Re: lug-bg: POSTGRES "truncate all"
- From: Daniel Ivanov <sertys@xxxxxxxxxxxxxx>
- Date: Tue, 14 Jun 2005 06:56:59 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
Става. Но си го написах на перлата.
Georgi Chorbadzhiyski wrote:
Daniel Ivanov wrote:
Изникна един въпрос. След като инкрементиран ъпдейт не е решение за една
база, защото старите данни са модифицирани до неузнаваемост ми се иска
да знам дали има лесен начин за TRUNCATE на всяка таблица в дадена схема.
Има.
#!/bin/sh
PGHOST="db"
PGDATABASE="test"
PGUSER="user"
PGPASSWORD="pass"
export PGHOST PGDATABASE PGUSER PGPASSWORD
PATH="/usr/bin:/usr/local/bin:/usr/local/pgsql/bin"
PSQL=`which psql`
tables=`$PSQL -t $PGDATABASE -c "SELECT DISTINCT
c.oid::pg_catalog.regclass
FROM
pg_catalog.pg_index x
JOIN pg_catalog.pg_class c ON c.oid = x.indrelid
JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid
WHERE nspname NOT LIKE 'pg\\\\_%'"`
IFS='
'
for table in $tables; do
$PSQL $PGDATABASE -c "TRUNCATE $table"
done
|
|
|