|
Re: lug-bg: POSTGRES "truncate all"
- Subject: Re: lug-bg: POSTGRES "truncate all"
- From: Georgi Chorbadzhiyski <gf@xxxxxxxxxxx>
- Date: Mon, 13 Jun 2005 00:25:09 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
- Organization: Unix Solutions (http://unixsol.org)
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
--
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
|
|
|