|
MySQL.RU - Webboard
Вернуться
Ошибка при запросе (Kirill) 21/02/2008 - 00:40:35
Re: Ошибка при запросе (Ol) 22/02/2008 - 18:36:56
> Original message text:
> From: Kirill - 21/02/2008 - 00:40:35
> Subject:Ошибка при запросе
> -----------------
> Есть база данных , включаящая две таблицы и два триггера ( по одному на каждую таблицу) . В одну таблицу поступают данные из внешнего источника . После определённого рода проверок часть данных поступает во вторую таблицу.
> Сервер выдаёт ошибку на запрос в триггере :"Эта версия MySQL еще не поддерживает 'многократные триггеры с тем же самым временем действия и случаем для одной таблицы"
> Установлен MySQL 5.0.45. .
> В чём причина ?????
> --
> -- Create schema `DB`
> --
>
> CREATE DATABASE IF NOT EXISTS DB;
> USE DB;
>
> --
> -- Definition of table `kuler`
> --
>
> DROP TABLE IF EXISTS `kuler`;
> CREATE TABLE `kuler`(.`Sym`.,`DT`,`A`,`B`,`C`,..);
> --
> -- Definition of trigger `DD`
> --
>
>
> DELIMITER $$
>
> CREATE DEFINER = `root`@`localhost` TRIGGER `DD` BEFORE UPDATE ON `kuler` FOR EACH ROW begin
> IF old.A >= new.A THEN
> set new.A = old.A;
> end if;
>
> IF old.B <= new.B THEN
> set new.B = old.B;
> end if;
>
> set new.C = old.C + new.C;
> end $$
>
> DELIMITER ;
> --
> -- Definition of table `joker`
> --
>
> DROP TABLE IF EXISTS `joker`;
> CREATE TABLE `joker` (ID,G,K,.......);
> --
> -- Definition of trigger `twist`
> --
>
> DROP TRIGGER /*!50030 IF EXISTS */ `twist`;
>
> DELIMITER $$
>
> CREATE DEFINER = `root`@`localhost` TRIGGER `twist` BEFORE INSERT ON `joker` FOR EACH ROW begin
>
> declare barid int default 0;
> declare ts timestamp default Now();
> ....
> ....
>
> Select timestamp(curdate(),maketime(hour(new.K),(minute(new.K) div 5)*5,00)) into ts;
> select max(ID) into barid from kuler where Sym=new.Sym and DT=ts limit 1;
> IF barid>0 THEN
>
> update kuler set A=new.G, B=new.G, C=new.G,... where ID=barid;
>
> ELSE
> insert into kuler (... , ..., A, B, C, ...) VALUES(new.Sym, ts, new.G, new.G, new.G, ...,...);
>
> END IF;
> end$$
>
>
> DELIMITER ;
>
>
>
>
>
>
From: Ol - 22/02/2008 - 18:36:56
Subject:Ошибка при запросе
-----------------
Уберите строку:
declare ts timestamp default Now();
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
33113
|
|