Ergebnis 1 bis 6 von 6

Thema: Trigger nach Datenupdate

  1. #1
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard Trigger nach Datenupdate

    Hallo,

    mit
    Code:
       update   public.geom_update set the_geom = geomfromtext('POINT('||x||'   '||y||')',4326);
    wandel ich Koordinatenpaare in eine Geometrie um.

    Häufig werden die Daten jedoch aktualisiert und die Geometrie ist danach wieder weg.

    Frage:
    Gibt es einen Trigger, welcher nach einem Datenimport eine bestimmte Funktion ausführt?
    - Spalte anlegen
    - Geometrie berechnen

    Ich weiß jedoch nicht, wann die Daten immer aktualisiert werden (das mache ich nicht).

    Gruß
    Karl

  2. #2
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Jetzt habe ich nochmals gesucht. Leider nichts entsprechendes gefunden.

    Es muss doch möglich sein, dass eine Funktion nach einem dump-import aufgerufen wird. Diese Funktion erstellt in einigen Tabellen neue Spalten.

  3. #3
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Du könntest einen Statement-Trigger auf diese Tabelle legen - vielleicht ist das die Funktionalität, die du suchst.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  4. #4
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Code:
        BEGIN
            --
            -- Create a row in emp_audit to reflect the operation performed on emp,
            -- make use of the special variable TG_OP to work out the operation.
            --
            IF (TG_OP = 'DELETE') THEN
                INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
                RETURN OLD;
            ELSIF (TG_OP = 'UPDATE') THEN
                INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;
                RETURN NEW;
            ELSIF (TG_OP = 'INSERT') THEN
                INSERT INTO emp_audit SELECT 'I', now(), user, NEW.*;
                RETURN NEW;
            END IF;
            RETURN NULL; -- result is ignored since this is an AFTER trigger
        END;
    Kann man hier auch ein ALTER TABLE *** ADD COLUMN **** text; einbauen?
    Geändert von karl_ha (22.03.2010 um 17:18 Uhr)

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    Code:
        BEGIN
            --
            -- Create a row in emp_audit to reflect the operation performed on emp,
            -- make use of the special variable TG_OP to work out the operation.
            --
            IF (TG_OP = 'DELETE') THEN
                INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
                RETURN OLD;
            ELSIF (TG_OP = 'UPDATE') THEN
                INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;
                RETURN NEW;
            ELSIF (TG_OP = 'INSERT') THEN
                INSERT INTO emp_audit SELECT 'I', now(), user, NEW.*;
                RETURN NEW;
            END IF;
            RETURN NULL; -- result is ignored since this is an AFTER trigger
        END;
    Kann man hier auch ein ALTER TABLE *** ADD COLUMN **** text; einbauen?
    Geht bestimmt, aber will man das? Ich stelle mir das grad nicht so wirklich sinnvoll vor, bei jedem Update via TRIGGER eine Spalte an die Tabelle zu klatschen...

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  6. #6
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Nicht bei jedem Update.

    Die Daten, welche ich verwende kommen extern. Aktuelle Daten bekomme ich von einem Dump.

    Nach einem "Datenupdate", also dem Löschen aller alten Tabellen und des Imports eines des Dumps fehlen noch ein paar Spalten. Diese möchte ich nicht jedes mal händisch anfügen müssen.


    Vielleicht brauch ich dann auch keinen Trigger, sondern ein sinnvolles Import-Script?

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 11.01.2011, 10:53
  2. Frage Datenupdate mit Shape2PostGIS-DB
    Von gis-man im Forum PostGIS
    Antworten: 1
    Letzter Beitrag: 26.11.2010, 14:59
  3. UPDATE Trigger oder INSERT Trigger
    Von traxanos im Forum Trigger und Funktionen
    Antworten: 8
    Letzter Beitrag: 18.05.2010, 12:59
  4. Trigger nach einiger Zeit wiederholen?
    Von pktm im Forum Trigger und Funktionen
    Antworten: 9
    Letzter Beitrag: 10.06.2008, 15:57
  5. Trigger nach allen Statements feuern?
    Von Hahne im Forum PostGIS
    Antworten: 1
    Letzter Beitrag: 17.02.2008, 12:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum