У меня есть таблица new
, в которой есть столбцы stock
и delivery_days
.
. Мне нужно, когда что-то обновляет / вставляет строки, когда запас или дни поставки изменились, триггер должен обновить поле status
, котороеможно получить, вызвав функцию CheckStatus (stock, delivery_days) и вернув 0 или 1
. Я пытался:
BEGIN
IF NEW.stock != OLD.stock or NEW.delivery_days != OLD.delivery_days
THEN
UPDATE new set status = CheckStatus(stock,delivery_days);
END IF;
END
, но он не будет работать, потому что будет бесконечное циклирование.
CheckStatus:
BEGIN
DECLARE `status` INT(11);
IF stock >= 1 and ddays = 0 THEN SET `status` = 1;
ELSE SET `status` = 0;
END IF;
RETURN `status`;
END
пример скрипки https://www.db -fiddle.com / f / tvGDajBRxUrHVvWjFnaiYu / 0