Revision 81,
1.5 KB
checked in by frank.jaeger, 13 years ago
(diff) |
ALKIS-Auskunft überarbeitet
|
Line | |
---|
1 | #!/bin/bash
|
---|
2 | echo "* =================================================================="
|
---|
3 | echo "* Bereinigung 'doppelte Objekte' in den Tabellen der ALKIS-Datenbank"
|
---|
4 | echo "* =================================================================="
|
---|
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 | # ---------------
|
---|
23 | echo "Datenbank : " $db
|
---|
24 | echo "Liste : " $mylist
|
---|
25 | #echo "** Liste der Tabellen erzeugen"
|
---|
26 | echo $myselect | psql -t -h localhost -p $port -d ${db} > ${mylist}
|
---|
27 | for tabname in `cat $mylist`
|
---|
28 | do
|
---|
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 "-----------------------------"
|
---|
34 | done
|
---|
35 | ##
|
---|
36 | echo "** fertig! (vaccuum empfohlen)"
|
---|
Note: See
TracBrowser
for help on using the repository browser.