2016-10-07 3 views
1

Dies ist meine erste Woche mit Postgres und ich versuche, den Spaltenstatus zu aktualisieren, wenn ein Update für die Zeile durchgeführt wird, aber immer einen Syntaxfehler erhalten. Ich habe ein paar Stunden damit verbracht, verschiedene Dinge auszuprobieren, ohne Glück. Jede Hilfe wird sehr geschätzt.POSTGRESQL Funktion zum Aktualisieren eines Feldes in Tabelle

Tabelle

create table cyclecounts(
id integer 
first_name char(50) 
last_name char(50) 
status char(20)); 

Funktion

CREATE FUNCTION status() 
RETURNS trigger as $update_status$ 
BEGIN 
--check status of status field 
if new.status = 'unprocessed' then 
new.status = 'sent'; 
RETURN NEW; 
END; 
$update_status$ 
LANGUAGE plpgsql; 

Fehler: Syntaxfehler bei dem oder in der Nähe von ";" Linie 8 ENDE;

Auslöser

CREATE TRIGGER status BEFORE UPDATE ON status 
FOR EACH ROW EXECUTE PROCEDURE status(); 

Antwort

1

Sie vermissen die end if (mindestens):

CREATE FUNCTION status() 
RETURNS trigger as $update_status$ 
BEGIN 
--check status of status field 
    if new.status = 'unprocessed' then 
     new.status = 'sent'; 
    end if; 
    RETURN NEW; 
END; 
$update_status$ 
LANGUAGE plpgsql; 
+0

Vielen Dank, dass gearbeitet! –

Verwandte Themen