Задавайте вопросы, мы ответим
Вы не зашли.
Уважаемые коолеги , возникла проблема . Во время ввода запросов ,в Query Browser , при вводе (Execute) строки в триггере появляется сообщение об ошибке : Эта версия MySQL еще не поддерживает 'многократные триггеры с тем же самым временем действия и случаем для одной таблицы'
--
-- 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 ;
Неактивен
DELIMITER - команда консоли, в MySQL Query Browser не обязана работать. Посмотрите еще SHOW TRIGGERS, есть ли у Вас уже триггеры (по идее конечно они долны быть удалены при удалении таблицы)
Неактивен
Судя по ошибке, Вы пытаетесь на одну таблицу создать второй триггер
с другим именем, но с теми же параметрами запуска. Подозреваю, что это
первый триггер (BEFORE UPDATE), т.к. второй явно удаляется перед созданием.
Неактивен
Бальшое спасибо за ответ , да действительно , как оказалось в Query Browser Delimiter не срабатывает .
А это в свою очередь вызвало появление ошибки , т.к. в тексте присутствует ещё один триггер .
Ввёл запросы через командную строку и всё стало ОК!!!
P.S. : Только вот всё же в Query Browser как то понагляднее , да и попроще . Может как нибудь можно избежать проблем( связанныых с Delimiter) при работе с данной утилитой ???
Отредактированно Twix (21.02.2008 23:31:54)
Неактивен
delimiter работает тогда, когда у Вас открыто окошко не resultset, а script.
В этом случае Query Browser ожидает, что будет введено несколько команд
и будет обрабатывать ограничители команд самостоятельно.
Неактивен