PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres-Funktion NULL-Wert für Zeile, die auf NEW verweist

Höchstwahrscheinlich laufen Sie in einen Namenskonflikt. Parameternamen (IN und OUT Parameter) sind (fast) überall im Funktionskörper sichtbar und haben Vorrang vor nicht qualifizierten Spaltennamen. Haben Sie col1 deklariert? als Variable in der Funktion?

Um den Konflikt zu vermeiden, table-qualifizieren der Spaltenname:

SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;

Dies ist in jedem Fall eine gute Vorgehensweise.

Es empfiehlt sich auch, Variablennamen ein Präfix voranzustellen, damit sie normalerweise nicht mit Tabellenspalten in Konflikt geraten. Wie:_col1 .