powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не проходит условие в триггере
10 сообщений из 10, страница 1 из 1
Не проходит условие в триггере
    #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
Не проходит условие в триггере
    #38778757
webslon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
webslon,
забыл END IF; дописать в последнем триггере
...
Рейтинг: 0 / 0
Не проходит условие в триггере
    #38779043
webslon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никто не знает?
...
Рейтинг: 0 / 0
Не проходит условие в триггере
    #38779092
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IS FALSE - странная конструкция. Это тебе не IS NULL.
...
Рейтинг: 0 / 0
Не проходит условие в триггере
    #38779103
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webslonПохоже что он вообще игнорирует переменную DISABLE_TRIGGER и подставляет Null.Если это происходит в разных сессиях, то так и должно быть. В MySQL каждая сессия видит только свои переменные.
...
Рейтинг: 0 / 0
Не проходит условие в триггере
    #38779197
webslon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftwebslonПохоже что он вообще игнорирует переменную DISABLE_TRIGGER и подставляет Null.Если это происходит в разных сессиях, то так и должно быть. В MySQL каждая сессия видит только свои переменные.
Можно подробнее немнго? Как вообще тогда отключить на время триггер, если стандартных средств в MySQL для этого нету.
...
Рейтинг: 0 / 0
Не проходит условие в триггере
    #38779216
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно отключить триггер в MySQL невозможно. Но можно передать в него некие управляющие данные, например, через MyISAM-таблицу (чтобы не была подвержена транзакциям).

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

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

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

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

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


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