Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, появилась такая проблема:
Необходимо инсерт прервать триггером. Пишу
DELIMITER $$
CREATE TRIGGER `may_drive` BEFORE INSERT ON `cars_meta`
FOR EACH ROW BEGIN
SET @prava = (SELECT prava FROM man WHERE id=(SELECT man_id FROM cars WHERE id=NEW.car_id));
IF NEW.attribute == `Грузоподъемноть`
AND LOCATE(`C`,@prava) <=> 0
THEN тут типа прерывание вставки
END$$
Гугление привело только к 1й ссылке на которой задавался подобные вопрос но без ответа
Неактивен
Прервать триггером операцию изменения данных, которая его вызвала, никак нельзя.
В нём можно написать заведомо ошибочный код - тогда изменения данных не произойдет, если триггер типа BEFORE, но это хак.
Корректно такие задачи решаются с помощью процедур.
Неактивен
В MySQL 5.5 добавлен оператор SIGNAL, позволяющий сгенерировать ошибку более красиво. http://dev.mysql.com/doc/refman/5.5/en/signal.html
Неактивен