Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает триггер
 
 автор: Konstanta   (06.01.2011 в 09:15)   письмо автору
 
 

Данный тригер должен при добавлении комментария в таблицу comments, в таблице news должен увеличивать кол-во коментариев у данной новости на 1. Но триггер почемуто неработает, может кто найдет ошибку?
CREATE TRIGGER `testtrig` AFTER INSERT ON `comments`
FOR EACH ROW BEGIN
UPDATE news SET comments = comments + 1 WHERE id_new = NEW.id_new;
END;

  Ответить  
 
 автор: Trianon   (06.01.2011 в 09:29)   письмо автору
 
   для: Konstanta   (06.01.2011 в 09:15)
 

неплохо было бы привести структуру таблиц и сообщить версию сервера.

Да, и еще Вы, очевидно, забыли переназначить разделитель операторов (DELIMITER), уж коль скоро применяете составной оператор в теле триггера.
В любом случае, сервер должен был ответить диагностическим собщением.

  Ответить  
 
 автор: Konstanta   (06.01.2011 в 09:47)   письмо автору
58.2 Кб
 
   для: Trianon   (06.01.2011 в 09:29)
 

Структура таблиц и версия MySQL (во вложенном файле)

  Ответить  
 
 автор: Trianon   (06.01.2011 в 10:02)   письмо автору
 
   для: Konstanta   (06.01.2011 в 09:47)
 

у меня срабатывает.
Правда, при попытке создать триггер, сервер попросил соответствующие привилегии.
Ну пришлось создать от имени root.

  Ответить  
 
 автор: Konstanta   (06.01.2011 в 10:21)   письмо автору
 
   для: Trianon   (06.01.2011 в 10:02)
 

Странно у меня root пользователь со всеми привелегиями, но почемуто не работает:(

  Ответить  
 
 автор: Trianon   (06.01.2011 в 10:54)   письмо автору
 
   для: Konstanta   (06.01.2011 в 10:21)
 

SELECT * FROM `INFORMATION_SCHEMA`.`TRIGGERS` 
  WHERE `TRIGGER_NAME` = 'testtrig'

Что показывает?

  Ответить  
 
 автор: psychomc   (06.01.2011 в 20:30)   письмо автору
 
   для: Konstanta   (06.01.2011 в 10:21)
 

в папке mysl найдите файл my.cnf, в нем строка, параметр thread_stack, поставьте хотя бы 256K если стоит меньше. у меня проблема была именно в этом

  Ответить  
 
 автор: Konstanta   (07.01.2011 в 13:36)   письмо автору
 
   для: psychomc   (06.01.2011 в 20:30)
 

Изменил параметр thread_stack с 128 на 256 и всё заработало, спасибо psychomc!

  Ответить  
 
 автор: Konstanta   (07.01.2011 в 14:29)   письмо автору
32.2 Кб
 
   для: Konstanta   (06.01.2011 в 09:15)
 

Всё бы хорошо, у себя на компьютере протестировал всё работает. Но когда пытаюсь создать триггер на сервере хостера, phpMyAdmin требует права Super, но когда создаешь пользователя таких прав там нет (см. приложение). Что делать?

  Ответить  
 
 автор: Trianon   (07.01.2011 в 14:34)   письмо автору
 
   для: Konstanta   (07.01.2011 в 14:29)
 

кто ж Вам у хостера позволит триггеры делать автоматом?
Либо просите письмом, либо перебирайтесь на VDS.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования