Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не проходит условие в триггере / 10 сообщений из 10, страница 1 из 1
16.10.2014, 15:19:17
    #38778752
webslon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DELIMITER $$
SET @DISABLE_TRIGGER = FALSE$$

DROP TRIGGER IF EXISTS thread_deleted$$
CREATE TRIGGER thread_deleted BEFORE UPDATE ON thread
    FOR EACH ROW 
        BEGIN
            SET @DISABLE_TRIGGER = TRUE;
            
            Здесь просто запросы, который делают update post

            SET @DISABLE_TRIGGER = FALSE;
        END $$

DROP TRIGGER IF EXISTS post_deleted$$
CREATE TRIGGER post_deleted BEFORE UPDATE ON post
    FOR EACH ROW 
        BEGIN
            IF @DISABLE_TRIGGER IS FALSE THEN
                  Здесь запрос, который никогда не выполняется.
                
        END $$
DELIMITER ;



Логика, если работает триггер для thread, то нужно отключить триггер для post, т.к. в триггере thread идет update post и всё это нарушит нужную мне логику. Т.е. мне нужно просто отключить триггер post_delted на время работы thread_deleted. Но мой вариант решение просто тупо навсегда отключает триггер post_deleted. В MySQL с пользовательскими переменнами не работал еще и скорее всего дело в них.

Почему может не выполняться запрос в триггере post_deleted? Похоже что он вообще игнорирует переменную DISABLE_TRIGGER и подставляет Null.
...
Рейтинг: 0 / 0
16.10.2014, 15:20:58
    #38778757
webslon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
webslon,
забыл END IF; дописать в последнем триггере
...
Рейтинг: 0 / 0
16.10.2014, 18:58:22
    #38779043
webslon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
Никто не знает?
...
Рейтинг: 0 / 0
16.10.2014, 20:02:05
    #38779092
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
IS FALSE - странная конструкция. Это тебе не IS NULL.
...
Рейтинг: 0 / 0
16.10.2014, 20:26:07
    #38779103
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
webslonПохоже что он вообще игнорирует переменную DISABLE_TRIGGER и подставляет Null.Если это происходит в разных сессиях, то так и должно быть. В MySQL каждая сессия видит только свои переменные.
...
Рейтинг: 0 / 0
16.10.2014, 23:09:38
    #38779197
webslon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
miksoftwebslonПохоже что он вообще игнорирует переменную DISABLE_TRIGGER и подставляет Null.Если это происходит в разных сессиях, то так и должно быть. В MySQL каждая сессия видит только свои переменные.
Можно подробнее немнго? Как вообще тогда отключить на время триггер, если стандартных средств в MySQL для этого нету.
...
Рейтинг: 0 / 0
16.10.2014, 23:38:02
    #38779216
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
Именно отключить триггер в MySQL невозможно. Но можно передать в него некие управляющие данные, например, через MyISAM-таблицу (чтобы не была подвержена транзакциям).

Правда, в целом вся конструкция выглядит крайне кривой. Я бы предложил создать процедуры, которые сами делали что нужно и как нужно с данными, запретив редактировать таблицы напрямую.
...
Рейтинг: 0 / 0
16.10.2014, 23:49:13
    #38779229
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
webslonmiksoftпропущено...
Если это происходит в разных сессиях, то так и должно быть. В MySQL каждая сессия видит только свои переменные.
Можно подробнее немнго? Как вообще тогда отключить на время триггер, если стандартных средств в MySQL для этого нету.

так дропнуть его, потом когда нужно заново создать.
...
Рейтинг: 0 / 0
16.10.2014, 23:52:05
    #38779233
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
MasterZivwebslonпропущено...

Можно подробнее немнго? Как вообще тогда отключить на время триггер, если стандартных средств в MySQL для этого нету.

так дропнуть его, потом когда нужно заново создать.

а еще лучше - дропнуть, и забыть про него, никогда не создавать...
...
Рейтинг: 0 / 0
17.10.2014, 11:07:22
    #38779549
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не проходит условие в триггере
webslon
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DELIMITER $$
SET @DISABLE_TRIGGER = FALSE$$

DROP TRIGGER IF EXISTS thread_deleted$$
CREATE TRIGGER thread_deleted BEFORE UPDATE ON thread
    FOR EACH ROW 
        BEGIN
            SET @DISABLE_TRIGGER = TRUE;
            
            Здесь просто запросы, который делают update post

            SET @DISABLE_TRIGGER = FALSE;
        END $$

DROP TRIGGER IF EXISTS post_deleted$$
CREATE TRIGGER post_deleted BEFORE UPDATE ON post
    FOR EACH ROW 
        BEGIN
            IF @DISABLE_TRIGGER IS FALSE THEN
                  Здесь запрос, который никогда не выполняется.
                
        END $$
DELIMITER ;



Логика, если работает триггер для thread, то нужно отключить триггер для post, т.к. в триггере thread идет update post и всё это нарушит нужную мне логику. Т.е. мне нужно просто отключить триггер post_delted на время работы thread_deleted. Но мой вариант решение просто тупо навсегда отключает триггер post_deleted. В MySQL с пользовательскими переменнами не работал еще и скорее всего дело в них.

Почему может не выполняться запрос в триггере post_deleted? Похоже что он вообще игнорирует переменную DISABLE_TRIGGER и подставляет Null.

уже бы давно присаоил ещо переменой вася = "молодец" в одном тригере, и в другом в временую табилцу записывал бы значение которое видит другой, и утановил бы - они одну и туже переменную видят или разные
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не проходит условие в триггере / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]