Перед ошибкой Insert Trigger при выполнении вставки

В триггере «Перед вставкой» я хочу вычислить значение столбца на основе двух столбцов во вставленной записи и значений столбцов в других таблицах, связанных с обновляемой таблицей.

Тестируя это, я только что создал код для доступа к одному из полей в другой таблице вверх по цепочке. Но при выполнении у меня была ошибка

CREATE DEFINER = CURRENT_USER TRIGGER `infrastructure`.`Wall_Drop_BEFORE_INSERT` BEFORE INSERT ON `Wall_Drop` FOR EACH ROW
BEGIN
Declare wall_temp decimal(6,2) default null;
Declare room_temp decimal (8,2) default null;

select r.dist_wire_closet into room_temp from rooms as r 
    where r.Residence_residence_id = new.Wall_rooms_Residence_residence_id
    and r.Residence_residence_id = new.Wall_rooms_Residence_residence_id;


END

Сообщение об ошибке при вставке записи


person Pete Watters Chatsworth    schedule 26.03.2018    source источник
comment
Ошибка кажется очевидной, критерию WHERE соответствует более одной строки, но вы можете использовать только SELECT INTO variable с одним результатом.   -  person Barmar    schedule 27.03.2018
comment
Оба теста в вашем AND одинаковы. Зачем делать одно и то же дважды?   -  person Barmar    schedule 27.03.2018
comment
Когда есть несколько комнат с одним и тем же Residence_residence_id, какую комнату следует использовать?   -  person Barmar    schedule 27.03.2018


Ответы (1)


Моя ошибка, 2-я строка была такой же, как и первая. я нуждаюсь

select r.dist_wire_closet into room_temp from rooms as r 
    where r.Residence_residence_id = new.Wall_rooms_Residence_residence_id
    and r.room_abr = new.Wall_rooms_room_abr;
person Pete Watters Chatsworth    schedule 28.03.2018