source: trunk/data/konvert/postnas_0.5/alkis_doppelte_objekte_loeschen.sh @ 163

Revision 81, 1.5 KB checked in by frank.jaeger, 11 years ago (diff)

ALKIS-Auskunft überarbeitet

Line 
1#!/bin/bash
2echo "* =================================================================="
3echo "* Bereinigung 'doppelte Objekte' in den Tabellen der ALKIS-Datenbank"
4echo "* =================================================================="
5## Z.B. nachdem eine NAS-Datei doppelt konvertiert wurde.
6## Die Tabellen werden jeweils mit sich selbst verglichen.
7## Wenn eine "gml_id" doppelt ist, dann wird der Eintrag mit dem groesseren serial "ogc_fid" geloescht.
8## Warnung: Bei grossen Datenbanken erzeugt dies Script fuer laengere Zeit eine hohe Last auf dem DB-Server!!
9## Stand 03.02.2011
10#
11# Konfig:
12# -------
13  port="5432"       # 5432  PG 8.3 main/UTF
14  db="alkis05300"   # Datenbank-Name
15#
16# Hilfs-Variable
17# --------------
18  mylist="/data/bkup/${db}_tablenames"
19  myselect="SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename like 'ax_%' ORDER BY tablename;"
20#
21# Here we go ....
22# ---------------
23echo "Datenbank : " $db
24echo "Liste     : " $mylist
25#echo "** Liste der Tabellen erzeugen"
26echo $myselect | psql -t -h localhost -p $port -d ${db} > ${mylist}
27for tabname in  `cat $mylist`
28do
29  echo " "
30  echo " * Tabelle  $tabname "
31  mysql="DELETE FROM $tabname AS dublette WHERE EXISTS (SELECT solitaer.gml_id FROM $tabname AS solitaer WHERE solitaer.gml_id  = dublette.gml_id AND dublette.ogc_fid > solitaer.ogc_fid);"
32  echo $mysql | psql -t -h localhost -p $port -d ${db}
33  echo "-----------------------------"
34done
35##
36echo "** fertig!  (vaccuum empfohlen)"
Note: See TracBrowser for help on using the repository browser.