Hi Gisman,
ich habe mich gerade mal wieder an diese Geschichte gesetzt. Nachdem ich versucht habe bestimmte Spalten unserer Ur-Datenbank mit einem Insert Befehl in eine ander Datenbank zu kopieren und mit dem Fehler der nicht implementierten Funktion zwischen zwei Datenbanken zu kopieren gescheitert bin, habe ich einfach ein neues Schema in der selben DB erstellt und konnte mit hilfe des Inserts-Befehl zwischen diesen beiden kopieren.
Die Tabelle in dem neuen Schema sieht folgendermaßen aus:
CREATE TABLE "Kopie"."Stammdaten"
(
prj_id character varying(6) NOT NULL,
xcoord double precision,
ycoord double precision,
zcoordb double precision,
longname character varying(40),
projekt character varying(40)
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Kopie"."Stammdaten"
OWNER TO postgres;
GRANT ALL ON TABLE "Kopie"."Stammdaten" TO public;
GRANT ALL ON TABLE "Kopie"."Stammdaten" TO postgres;
So und nun hänge ich wieder… Ich habe auch schon einen entsprechenden Matrialized View erstellt, aber komme genauso wenig weiter.
-
Ich habe mir nochmal deinen Code vom Beginn der Konversation angeschaut und bin über etwa gestolpert dass mich stutzig macht.
Du hast da irgendwoher die Spalte SRID bekommen. Wo kommt die her oder ist das der Bestandteil der PostGIS Erweiterung und wird einfach hinten dran gehangen? Aber woher weiß die DB welche SRID passt? Ich kann ja nicht 60000 Zeilen durchgehen und das entsprechend zuordnen!? -
Mir gefällt die Lösung mit dem FWD am besten, jedoch verstehe ich den Hintergrund nicht ganz. Wird die geklonte DB ständig aktualisiert?
Ich bin auch offen für den MV. Wird dieser ständig aktualisiert wenn etwas in die Urtabelle hinzu kommt oder gelöscht wird? Oder doch lieber ein Trigger? -
Gehen wir davon aus ich benutze einen MV. Kann ich im Prinzip den MV um die Spalte geom erweitern, diese mit der Transform-Funktion versehen und habe am Ende immer eine aktuelle geom-Spalte? Oder ist das zu einfach gedacht?
Ich würde mich sehr über deine und alle anderen Antworten freuen.
Gruß Schweitzer