Модераторы: skyboy, SamDark
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение в триггере строки на которой он висит 
:(
    Опции темы
Aver78
Дата 19.6.2018, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Есть таблица AAA
id
id2
name

На ней, на AFTER UPDATE, висит триггер.

Сам исполнимый код триггера:
Код

UPDATE AAA SET 
      name = 'Тра-ля-ля'
  WHERE 
      id2= old.id;


Соответственно mysql шлет меня подальше, ибо нельзя обновлять строки той же таблицы на которую повешен триггер. На самом деле, можно, но только для той строки, для которой сработал триггер, используя SET, но мне нужно обновлять именно другие.
    Понятно что это сделано дабы база не свалилась в бесконечную рекурсию, но как раз именно для рекурсии я и хочу такое заюзать. Конечно не бесконечной. 

  Гугль  особо результатов не дал. Если не считать ответов при непонятом вопросе, и визги что нельзя, потому что НЕЛЬЗЯ.
PM MAIL   Вверх
Akina
Дата 20.6.2018, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20356
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 104
Всего: 447



Правильно. НЕЛЬЗЯ. Всё, не обсуждается.

Если нужна логика, которая противоречит семантике атомарной операции - она реализуется не запросом, а хранимой процедурой.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Aver78
Дата 20.6.2018, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Угу, процедуры я тоже попробовал. Процедурой можно, но разово, как обычным запросом. А мне нужно именно рекурсивно. А если вешаешь процедуру в тригер, то тоже самое - нельзя.
 А если првиести пример, то подзапрос в таблице которую собираешься инсертить или апдейтить - тоже нельзя, однако если подумать - то можно.

Это сообщение отредактировал(а) Aver78 - 21.6.2018, 09:08
PM MAIL   Вверх
Akina
Дата 21.6.2018, 11:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20356
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 104
Всего: 447



Цитата(Aver78 @  20.6.2018,  21:19 Найти цитируемый пост)
Процедурой можно, но разово, как обычным запросом. А мне нужно именно рекурсивно. А если вешаешь процедуру в тригер, то тоже самое - нельзя

 smile Забудь слово "триггер". Именно в этом - смысл слова "нельзя".
В форме ХП реализуется то, что ты пытаешься реализовать запросом. Не тем запросом, что в триггере, а тем,от выполнения которого должен сработать триггер.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Google
  Дата 21.10.2018, 17:19 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0866 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.