Ошибка на триггере MySQl и есть ли способ лучше писать? - PullRequest
0 голосов
/ 20 июня 2011

Здравствуйте, я получаю следующую ошибку при использовании триггера ниже:

inser into shift
-> values<15,3, '08:00:00','14:00:00'>;

ERROR 1048 <23000>: Column 'CashierCode' can not be null

Почему это так?Кроме того, есть ли лучшее написание следующего?

DELIMITER @
create trigger shist_start
before insert on shift
for each row
begin
if(new.CashierCode not in(
select w.EmployeeCode from WorksOn as w
join shop as s on w.ShopCode = s.ShopCode
join CashMachine as c on s.ShopCode = c.ShopCode
where c.CashMachineID=new.CashMachineID ))
then set new.CashierCode = NULL;
end if;
end;

1 Ответ

2 голосов
/ 20 июня 2011

Кажется, что столбец CashierCode определен как NOT NULL. Вы уверены, что у вас есть ненулевое значение для этого столбца?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...