Hoogstwaarschijnlijk loop je tegen een naamgevingsconflict aan. Parameternamen (IN en OUT parameters) zijn (bijna) overal zichtbaar in de hoofdtekst van de functie en hebben voorrang op niet-gekwalificeerde kolomnamen. Heb je col1 . aangegeven? als variabele in de functie?
Om het conflict te vermijden, table-qualify de kolomnaam:
SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;
Dit is in ieder geval een goede gewoonte.
Het is ook een goede gewoonte om variabelenamen voor te voegen, zodat ze normaal gesproken niet conflicteren met tabelkolommen. Vind ik leuk:_col1 .