Vous rencontrez très probablement un conflit de nom. Noms des paramètres (IN
et OUT
parameters) sont visibles dans le corps de la fonction (presque) n'importe où et ont priorité sur les noms de colonne non qualifiés. Avez-vous déclaré col1
comme variable dans la fonction ?
Pour éviter le conflit, table-qualifie le nom de la colonne :
SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;
C'est une bonne pratique dans tous les cas.
Il est également recommandé de préfixer les noms de variables, afin qu'ils n'entrent normalement pas en conflit avec les colonnes de la table. Comme :_col1
.