Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Триггер BEFORE INSERT (Mete0) 06/03/2008 - 19:55:37
      Re: Триггер BEFORE INSERT (Mete0) 07/03/2008 - 00:37:52
      Re: Триггер BEFORE INSERT (Vladimir) 12/08/2009 - 14:27:18



From: Mete0 - 06/03/2008 - 19:55:37
Subject:Триггер BEFORE INSERT
-----------------
Сознаю триггер

CREATE TRIGGER `number_inc` BEFORE INSERT ON `order`
FOR EACH ROW BEGIN
DECLARE done TINYINT UNSIGNED DEFAULT 0;
DECLARE curNumber SMALLINT UNSIGNED DEFAULT 0;
DECLARE cur1 CURSOR FOR SELECT MAX(`number`)+1 FROM `order` WHERE `date`=NEW.date LIMIT 1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur1;
FETCH cur1 INTO curNumber;
IF done THEN
SET NEW.number = curNumber;
ELSE
SET NEW.number = 1;
END IF;
CLOSE cur1;
END;

Его задача, при добавление новой записи в таблицу "order" если есть, то находить максимальный номер + 1 "number" для указанной "date" и изменять его на найденный макс. номер + 1, если нет ни одной записи для указанной "date", то выставлять 1 для "number".

done != 1 не могу понять почему. (в таблице есть необходимые записи для выполнения запроса cur1)


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36059



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |