







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
36059
|
|