Lo más probable es que te encuentres con un conflicto de nombres. Nombres de parámetros (IN
y OUT
parámetros) son visibles en el cuerpo de la función (casi) en cualquier lugar y tienen prioridad sobre los nombres de columna no calificados. ¿Declaraste col1
? como variable en la función?
Para evitar el conflicto, table-qualify el nombre de la columna:
SELECT b.col1 FROM tableb b WHERE b.aID = NEW.ID;
Esta es una buena práctica en cualquier caso.
También es una buena práctica colocar un prefijo en los nombres de las variables, de modo que normalmente no entren en conflicto con las columnas de la tabla. Me gusta:_col1
.