powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как выполнить триггер в процедуре и через PREPARE?
14 сообщений из 14, страница 1 из 1
Как выполнить триггер в процедуре и через PREPARE?
    #39716195
superpupervest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста. Делаю так

Но, что-то не выходит, даже вне процедуры

SET @var = concat('DELIMITER | DROP TRIGGER IF EXISTS `trig`; CREATE TRIGGER `trig` BEFORE INSERT ON `table` FOR EACH ROW BEGIN IF (select count(*) from `table`)>99 THEN SIGNAL SQLSTATE \'45000\';END IF;END|');
PREPARE zxc FROM @var;
EXECUTE zxc;

Хотя так работает

DELIMITER | DROP TRIGGER IF EXISTS `trig`; CREATE TRIGGER `trig` BEFORE INSERT ON `table` FOR EACH ROW BEGIN IF (select count(*) from `table`)>99 THEN SIGNAL SQLSTATE '45000';END IF;END|

Подскажите, пожалуйста. В чем беда?
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716206
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervest,
подумай хорошенько что ты делаешь!!!
по простому твоё художество называется масло-масленное.....
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716209
superpupervest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, это не ответ. Мне нужно решение.
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716215
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervestтак работаетНе, не должно... не верю.

superpupervestчто-то не выходитЕщё бы! CREATE TRIGGER не входит в список допустимых для Prepared statement. SQL Syntax Allowed in Prepared Statements .
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716217
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervestМне нужно решение.Тогда формулируйте задачу, а не то, как её, по Вашему мнению (к слову - ошибочному), следует решать.
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716221
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervest,

Читайте документацию по тем словам, которые пишете в коде.
1. Нет SQL-команды delimiter.
2. В prepared statement нельзя удалять и создавать триггера.
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716227
superpupervest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Должно и работает. С чего это не должно?
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716230
superpupervest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял, в Prepare нельзя создавать DELIMITER. Тогда вопрос, как запустить триггер в процедуре. Т.е. я создаю таблицы через цикл и мне нужно, чтобы при определенных условиях к таблице добавлялся триггер
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716232
superpupervest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее мне надо создать триггер в процедуре
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716244
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervestДолжно и работает.Не верю!
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716247
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervestмне надо создать триггер в процедуреНевозможно.
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716303
superpupervest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Но если узнаете, почему у Вас по другому, пишите.
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716406
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хоть бы посмотрел сперва, что запостить-то собираешься...
...
Рейтинг: 0 / 0
Как выполнить триггер в процедуре и через PREPARE?
    #39716429
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
superpupervestЯ понял, в Prepare нельзя создавать DELIMITER.В SQL-запросах в принципе нет запроса DELIMITER.
DELIMITER - это команда консольного клиента mysql. Кроме этого поддерживается некоторыми GUI-клиентами.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как выполнить триггер в процедуре и через PREPARE?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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