Хотелось бы узнать, есть ли способ выбросить сообщение из триггера, не прерывая его?
У меня есть триггер, который проверяет запас заказанного товара при каждом заказе.Если запас меньше минимального запаса, триггер должен завершить заказ и сообщить пользователю, у которого заканчивается этот продукт.
DELIMITER &&
DROP TRIGGER IF EXISTS ControlPedidoCliente&&
CREATE TRIGGER ControlPedidoCliente BEFORE INSERT ON LineasPedidosCliente FOR EACH ROW
BEGIN
DECLARE existencias INT;
DECLARE cantidad INT;
DECLARE diferencia INT;
DECLARE total INT;
DECLARE stockMinimo INT;
SELECT (StockMaximo-PendServir) FROM Productos WHERE IdProducto = NEW.IdProducto INTO existencias;
SELECT (PendRecibir-PendServir) FROM Productos WHERE IdProducto = NEW.IdProducto INTO diferencia;
SELECT StockMinimo FROM Productos WHERE IdProducto = NEW.IdProducto INTO stockMinimo;
SET cantidad = NEW.Cantidad;
SET total = (existencias + diferencia) - cantidad;
IF total < 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'No hay suficientes existencias, se debe pedir';
END IF;
IF total < stockMinimo THEN
/*THE MESSAGE SHOULD BE HERE*/
END IF;
END&&
DELIMITER ;
Я пытался вызвать хранимую процедуру, но я все еще получаю "Не разрешается возвращать набор результатов из триггера "
Заранее спасибо.