SELECT в Mysql Trigger возвращает NULL для полей целого числа и даты - PullRequest
0 голосов
/ 26 апреля 2019

Я использую 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) установлены. Другие переменные равны нулю. Конечно, ни одно из полей не является пустым в выбранной записи.

1 Ответ

0 голосов
/ 26 апреля 2019

Я думаю, что проблема связана с именем переменной. Кажется, они не чувствительны к регистру? Таким образом, запрос перепутан с переменными с тем же именем, что и у полей.

...