@ed_milson
Я

Как остановить запрос INSERT если не выполняется условие?

Здравствуйте. Есть таблица "Лимит" со структурой фабрика, материал, лимит
И есть таблица Отгрузка куда будут заносится запросы когда фабрика просит взять некоторый материал. Как написать триггер на проверку, если запрос больше чем лимит то не исполнять. Пример вставки в таблицу Отгрузка
INSERT INTO `Отгрузка ` (`factory`, `material`, `kol`) VALUES ( 'фабрика1', 'дерево', '127', )

но в таблице лимит стоит Фабрика1= дерево=100 пример вставки
INSERT INTO `Лимит` (`factory`, `material`, `kol`) VALUES ( 'фабрика1', 'дерево', '100', )

Как написать триггер чтобы не исполнялся первый запрос если больше лимита?
Знаю что нужно CREATE TRIGGER BEFORE использовать, но как прервать вставку?
  • Вопрос задан
  • 1450 просмотров
Решения вопроса 2
Sekira
@Sekira
Если MySQL >= 5.5, то в условии триггера вызывать примерно следующее:
IF (Фабрика=1 AND Дерево!=100) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "Error ...";
END IF;


Подробнее dev.mysql.com/doc/refman/5.5/en/signal.html
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы