Ich habe den folgenden Code, das ist die geschrumpfte Version der Funktion für den Trigger auf dem Tisch i den Auslöser anwenden möchten, die Tabelle hat tatsächlich viele Felder:Postgres Syntaxfehler in der Nähe, wenn
Create OR REPLACE FUNCTION PRC_EPV_()
RETURNS trigger AS $PRC_EPV_$
begin
Declare BaseCount bigint default 0;
Declare PeakCount bigint default 0;
Declare BaseSUM DOUBLE PRECISION default 0;
Declare PeakSum DOUBLE PRECISION default 0;
IF new.epv_kw_1 IS NOT NULL THEN
set BaseSum = BaseSum + new.EPV_KW_1;
set BaseCount = BaseCount + 1;
END if;
IF new.EPV_KW_38 IS NOT NULL Then
set BaseSum = BaseSum + new.EPV_KW_38;
set PeakSum = PeakSum + new.EPV_KW_38;
set BaseCount = BaseCount + 1;
set PeakCount = PeakCount + 1;
END if;
IF new.EPV_KW_91 IS NOT NULL Then
set BaseSum = BaseSum + new.EPV_KW_91;
set BaseCount = BaseCount + 1;
END if;
set new.EPV_Peak_Sum = PeakSum ;
set new.EPV_Base_Sum = BaseSum ;
IF PeakCount > 0 Then
set new.EPV_Peak_AVE = new.EPV_peak_Sum/PeakCount * 4;
END if;
IF BaseCount > 0 Then
set new.EPV_Base_AVE = new.EPV_base_Sum/BaseCount * 4;
END if;
RETURN NEW;
END;
$PRC_EPV_$ LANGUAGE plpgsql;
pgAdmin SQL Editor sagt mir eRROR: Syntaxfehler bei oder in der Nähe von „IF“ LINE 11: IF new.epv_kw_1 IS NOT NULL
DANNfür das Leben von mir kann ich nicht arbeiten, warum ich versucht, die Bedingungsanweisung ersetzt mit ‚true ',' 1 ',' -1 ',' 1 = 1 'die ganze Zeit gibt es den gleichen Syntaxfehler in der Nähe von IF
einfach auf am Ende ändert, sorry, im noch hing über auf der mySQL Ordnung der Dinge :) – sjwbond
scheint, Sie sind sehr willkommen - ich bin immer noch Hinzufügen von NOLOGGING zum Ende manchmal :) –