Trigger für Update der Geometrie-Spalte

Hallo an Alle,

ich bräuchte eine Trigger-Funktion die bei dem Ändern einer der x/y-Koordinaten-Spalten automatisch ein SQL-Statement für ein Update der Geometrie-Spalte absetzt!
Da meine Programmierkenntnisse gegen Null tendieren, bitte ich Euch mir mal auszuhelfen.
Das System ist Postgre 8.1x und PostGIS 1.2x

Ich hoffe jemand kann mir schnell weiterhelfen.

Danke schon mal im Voraus,
Christian

Von PostGIS hab ich keinen Plan, aber mich wundert, daß Du offensichtlich in einer Spalte Daten hast, die aus dem Inhalt anderer Spalten berechenbar ist. Das ist normalerweise kein gutes Design.

Andreas

Bei Geodaten ist (fast) alles erlaubt :wink: . Die Geometrie liegt in einem Binärformat vor. Da aber oft die Koordinaten direkt benötigt werden, halte ich die auch bei Bedarf in numerischer Form vor, weil das manche Abfrage beschleunigt, da ich sonst immer erst die Geometrie zerlegen muß. Oder ich erzeuge die Geometrie halt in einem View nach meinen Bedürfnissen. Ausserdem vereinfacht es die Kommunikation mit Menschen, die nicht in relationalen Modellen denken, z.B. Ingenieuren… :wink:
Aber prinzipiell hast du natürlich recht.
Leider hab ich keine Erfahrung mit Triggern, aber ich wüsste nicht, was dem Erzeugen der Geometrie in einem Trigger entgegenspräche.

Das SQL-Statement sähe etwa so aus:

update MeineTabelle set [geometry]=geomfromtext[WKT-Format siehe PostGIS-Doku]

Ohne Gewähr aus dem hohlen Bauch und ohne Kaffee :wink:

Schöne Woche Uwe

Ja in Geodatenbanken macht das schon Sinn die Koordinaten nochmal als Klartext abzulegen. Hier können dann Nutzer auch mal manuell Punkt-Koordinaten ändern, resp. korrigieren.
Wie das Statement für das Update auszusehen hat weiß ich selbst. Danach wurde auch nicht gefragt;-)
Aber wie muss die Trigger funktion aussehen. Keiner eine Idee?

Du erzeugts eine Function, die einen TRIGGER als Result liefert, und sagts einfach, daß diese dann Dein Trigger ist.

PostgreSQL: Documentation: Manuals: PostgreSQL 8.1: A Complete Example

(der Quoting-Stil dort mit ’ ist veraltet, einfacher ist Dollarquoting:
PostgreSQL: Documentation: Manuals: PostgreSQL 8.1: Trigger Procedures)

Andreas