Najprawdopodobniej masz konflikt nazewnictwa. Nazwy parametrów (IN
i OUT
parametry) są widoczne w treści funkcji (prawie) w dowolnym miejscu i mają pierwszeństwo przed niekwalifikowanymi nazwami kolumn. Czy zadeklarowałeś col1
jako zmienna w funkcji?
Aby uniknąć konfliktu, kwalifikuj się przy stole nazwa kolumny:
SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;
W każdym razie jest to dobra praktyka.
Dobrą praktyką jest również przedrostki nazw zmiennych, aby normalnie nie kolidowały z kolumnami tabeli. Na przykład:_col1
.