Changeset 315 for trunk/import/pp_laden.sql
- Timestamp:
- 02/06/14 16:40:10 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/pp_laden.sql
r296 r315 16 16 -- 2013-07-10 F.J. Bereinigen der alkis_beziehungen auskommentiert, wird jetzt im Trigger gelöst. 17 17 -- 2012-10-24 Neue Tabelle für die Präsentation von Straßennamen und -Klassifikationen 18 -- 2014-02-05 Bereits auskommentierte Aktionen gelöscht für die Beseitigung von Rdundanzen aus fehlerhaften Triggern 19 18 20 19 21 -- ============================ … … 41 43 -- Besser wäre: sofort im Trigger bei replace entfernen. 42 44 -- Siehe Schema in FUNCTION delete_feature_kill 43 44 -- 2013-07-10 Das folgende Delete auskommentiert. Das wird jetzt im Trigger gelöst.45 ------46 -- DELETE47 -- FROM alkis_beziehungen AS bezalt -- Beziehung Alt48 -- WHERE EXISTS49 -- (SELECT ogc_fid50 -- FROM alkis_beziehungen AS bezneu -- Beziehung Neu51 -- WHERE bezalt.beziehung_von = bezneu.beziehung_von52 -- AND bezalt.beziehung_zu = bezneu.beziehung_zu53 -- AND bezalt.beziehungsart = bezneu.beziehungsart54 -- AND bezalt.ogc_fid < bezneu.ogc_fid55 -- );56 ------57 58 -- Denkbar ist eine Variante für den Trigger, die zusätzlich59 -- auf eine bestimmte gml_id filtert.60 -- Damit wäre die DB schon während der Konvertierung konsistenter.61 -- Nachtrag 2013-02-20:62 -- Diese provisorische Lösung korrigiert nur die Fälle, wo ein Replace eine redundante Beziehung63 -- einträgt. Wenn ein Objekt und seine Beziehung gleichzeitig geändert wird, wird der alte64 -- Eintrag nicht gefunden und verbleibt in den Beziehungen.65 -- Siehe z.B. in Datei "sichten.sql" die Abfrage "mehrfache_buchung_zu_fs"66 67 68 -- Mehrfache Buchungen zu einem Flurstück korrigieren.69 -- Neu 2013-02-2170 -- Dieser Fehler enststeht, wenn ein Replace zu "ax_flurstueck" gleichzeitig die71 -- Beziehung 'istGebucht' zu "ax_buchungsStelle" ändert.72 -- Kann entfallen, sobald PostNAS bei Replace die "alkis_beziehungen" richtig fortführt.73 74 -- Version Marvin Brandt, Unna75 -- DELETE76 -- -- SELECT *77 -- FROM alkis_beziehungen a178 -- WHERE a1.beziehung_von = ANY(SELECT gml_id FROM (79 -- SELECT f.*,80 -- (SELECT count(f2.gml_id) as anzahl81 -- FROM ax_flurstueck f282 -- JOIN alkis_beziehungen a1 ON f2.gml_id = a1.beziehung_von AND a1.beziehungsart = 'istGebucht'83 -- WHERE f2.gml_id = f.gml_id84 -- ) as anzahl85 -- FROM ax_flurstueck f86 -- ) as sub87 -- WHERE sub.anzahl > 1 )88 -- AND a1.beziehungsart = 'istGebucht'89 -- AND a1.ogc_fid = (SELECT min(sub.ogc_fid) as ogc_fid FROM (90 -- SELECT a1.*,91 -- (SELECT count(f2.gml_id) as anzahl92 -- FROM ax_flurstueck f293 -- JOIN alkis_beziehungen a1 ON f2.gml_id = a1.beziehung_von AND a1.beziehungsart = 'istGebucht'94 -- WHERE f2.gml_id = f.gml_id95 -- ) as anzahl96 -- FROM ax_flurstueck f97 -- JOIN alkis_beziehungen a198 -- ON f.gml_id = a1.beziehung_von AND a1.beziehungsart = 'istGebucht'99 -- ) as sub100 -- WHERE sub.beziehung_von = a1.beziehung_von);101 102 103 -- 2013-07-10 Das folgende Delete auskommentiert. Das wird jetzt im Trigger gelöst104 ------105 -- -- Version Frank Jäger, Lemgo106 -- DELETE107 -- -- SELECT * -- TEST: erst mal schauen, was gelöscht würde, wenn ...108 -- FROM alkis_beziehungen b109 -- WHERE b.beziehungsart = 'istGebucht'110 -- -- Die erste subquery zählt die Buchungen zu einer (Flurstücks-) gml_id.111 -- -- Es wird nur dort gelöscht, wo mehrerer Buchungen existieren.112 -- AND 1 <113 -- ( SELECT count(f1.ogc_fid) AS anzfs114 -- FROM ax_flurstueck f1115 -- JOIN alkis_beziehungen z116 -- ON f1.gml_id = z.beziehung_von117 -- WHERE f1.gml_id = b.beziehung_von118 -- AND z.beziehungsart = 'istGebucht'119 -- GROUP BY f1.gml_id )120 -- -- Die zweite Subquery liefert die letzte (= aktuelle) Beziehung.121 -- -- Diese aktuelle Buchung wird vom Löschen ausgeschlossen.122 -- AND b.ogc_fid <123 -- ( SELECT max(a.ogc_fid) AS maxi124 -- FROM ax_flurstueck f2125 -- JOIN alkis_beziehungen a126 -- ON f2.gml_id = a.beziehung_von127 -- WHERE f2.gml_id = b.beziehung_von128 -- AND a.beziehungsart = 'istGebucht'129 -- GROUP BY a.beziehung_von )130 -- -- bei Test mit SELECT darf man sortieren:131 -- -- ORDER BY b.beziehung_von, b.ogc_fid132 -- ;133 ------134 135 136 -- SELECT *137 -- FROM alkis_beziehungen AS bezalt138 -- WHERE EXISTS139 -- (SELECT ogc_fid140 -- FROM alkis_beziehungen AS bezneu141 -- WHERE bezalt.beziehung_von = bezneu.beziehung_von142 -- AND bezalt.beziehung_zu = bezneu.beziehung_zu143 -- AND bezalt.beziehungsart = bezneu.beziehungsart144 -- AND bezalt.ogc_fid < bezneu.ogc_fid145 -- );146 147 -- SELECT *148 -- FROM alkis_beziehungen AS bezalt149 -- WHERE EXISTS150 -- (SELECT ogc_fid151 -- FROM alkis_beziehungen AS bezneu152 -- WHERE bezalt.beziehung_von = bezneu.beziehung_von153 -- AND bezalt.beziehung_zu = bezneu.beziehung_zu154 -- AND bezalt.beziehungsart = bezneu.beziehungsart155 -- AND bezalt.ogc_fid < bezneu.ogc_fid156 -- )157 -- -- mit dem Zusatz nur die Faelle aus dem letzten Durchlauf,158 -- -- die aktuell noch in der Delet-Tabelle stehen159 -- AND EXISTS160 -- (SELECT ogc_fid161 -- FROM delete162 -- WHERE bezalt.beziehung_von = substr(featureid, 1, 16)163 -- OR bezalt.beziehung_zu = substr(featureid, 1, 16)164 -- );165 45 166 46 … … 199 79 200 80 -- Straßen - N a m e n und - K l a s s i f i k a t i o n 201 -- NEU 2013-10-24202 81 -- Tabellen für die Präsentation von Straßen-Namen und -Klassifikationen 203 82 -- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in der Tabelle "pp_strassenname". … … 410 289 WHERE z.gemeinde is Null; -- .. noch nicht vorhanden ist 411 290 412 413 291 -- ENDE --
Note: See TracChangeset
for help on using the changeset viewer.