ich arbeite in PostgreSQL 9.5, wo ich diese beiden Tabellen haben:Trigger-Funktion aktualisiert nicht die erste Zeile der Tabelle
Tabelle Vorfall:
oid integer
description integer,
geom geometry(Point,4326),
Und Tabelle Gitter:
oid integer,
number integer,
geom geometry(Polygon,4326)
Jedes Mal, wenn ein Punkt zur Tabelle Vorfall hinzugefügt wird Ich möchte das Feld Beschreibung mit der Grid-Nummer gefüllt werden, die der Punkt schneidet. Um dies zu erreichen habe ich diese Trigger:
CREATE OR REPLACE FUNCTION get_ortofoto_incidentes()
RETURNS TRIGGER AS
$BODY$
BEGIN
SELECT g.number INTO NEW.description
FROM incident AS i, grid AS g
WHERE st_intersects(new.geom, g.geom) ; --
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsq;
Und fügte hinzu, es auf den Tisch Vorfall:
CREATE TRIGGER get_ortofoto_incidentes
BEFORE INSERT OR UPDATE ON incidentestest
FOR each row
EXECUTE PROCEDURE get_ortofoto_incidentes();
Das Problem ist, dass, wenn die Trigger-Funktion das Attribut Beschreibung genannt wird bleibt null für die erste Zeile, aber nach dem Trigger funktioniert wie erwartet. Dies ist, was ich bekomme:
oid | description
1 | null
2 | 236541
3 | 695489
4 | 325687
... | ....
Eine Idee, warum der Trigger nicht für die erste Zeile der Tabelle aktualisiert wird?
Danke
Danke Laurenz, guter Punkt auf der "Vorfall AS i". Ich habe es entfernt und jetzt funktioniert der Trigger wie erwartet auch für die erste Zeile. Obwohl ich Ihren Standpunkt verstehe, bin ich nicht sicher, warum es mein Problem verursacht hat, aber Tatsache ist, es funktioniert! – Lisdengard