Я использую SELECT на TABLE2 в триггере INSERT до или после TABLE1.
Выбор получает varchar, дату и целочисленные значения.
Только varchar возвращаются. Все остальные значения установлены в NULL.
DECLARE d_enl date;
DECLARE d_liv date;
DECLARE d_trace_enl date;
DECLARE d_trace_liv date;
DECLARE ecart_enl int;
DECLARE ecart_liv int(8);
DECLARE h_min varchar(8);
DECLARE h_max varchar(8);
SELECT D_ENL, D_LIV INTO d_enl, d_liv FROM refer WHERE K_REFER = NEW.K_REFER;
SELECT H_LIV_MIN, H_LIV_MAX INTO h_min, h_max FROM refer WHERE K_REFER = NEW.K_REFER;
SELECT ECART_ENL INTO ecart_enl FROM refer WHERE K_REFER = NEW.K_REFER;
K_REFER - ПЕРВИЧНЫЙ УНИКАЛЬНЫЙ КЛЮЧ, поэтому возвращается только одна строка.
Я попытался выбрать со всеми полями, выбрать для каждого типа, как, и даже выбор по переменной, используя SET var1 = (SELECT Field1 FROM ... WHERE).
Тот же результат: h_min и h_max (varchar) установлены. Другие переменные равны нулю. Конечно, ни одно из полей не является пустым в выбранной записи.