Доброго времени суток, уважаемые Мастера.
У меня возникла запара при создании триггеров. Версия mysql 5.0.7 по идее такие вещи как DELIMITER, BEGIN and END должны уже поддерживатся в полной мере но, увы...
Вот такой вот вариант проходит без чихов и диареи
CREATE DEFINER = CURRENT_USER
TRIGGER `ac_blog_udir`
AFTER DELETE ON `ac_blog_udir`
FOR EACH ROW DELETE FROM `ac_blog_stat` WHERE `id_user` = OLD.`id_user` AND `id` = OLD.`id`;
но он не верен так как сначало стоит проверить существуют ли записи в указанной таблице.
Надо бы записать так
DELIMITER !!
CREATE DEFINER = CURRENT_USER
TRIGGER `ac_blog_udir`
AFTER DELETE ON `ac_blog_udir`
FOR EACH ROW BEGIN
IF (SELECT COUNT(*) FROM `ac_blog_udir` WHERE `id_user` = OLD.`id_user` AND `id` = OLD.`id` LIMIT 1) = 1
THEN
DELETE FROM `ac_blog_stat` WHERE `id_user` = OLD.`id_user` AND `id` = OLD.`id`;
END IF;
END;
!!
DELIMITER;
но, не пруха, выдает ошибку т гаснет. С чем это может быть связано? За ранее спасибо)
PS.
Умники с ссылками на гугл - лесом, был бы у меня траф на него, давно бы уже воспользовалась. Примеры с мануалов тоже не катят...
Изменил: Erika (06.05.2013 / 15:26)