Molto probabilmente ti stai imbattendo in un conflitto di nomi. Nomi dei parametri (IN
e OUT
parametri) sono visibili nel corpo della funzione (quasi) ovunque e hanno la precedenza sui nomi di colonna non qualificati. Hai dichiarato col1
come variabile nella funzione?
Per evitare il conflitto, qualificati al tavolo il nome della colonna:
SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;
Questa è comunque una buona pratica.
È anche buona norma anteporre i nomi delle variabili, in modo che normalmente non entrino in conflitto con le colonne della tabella. Come:_col1
.