powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка в триггере
15 сообщений из 15, страница 1 из 1
Ошибка в триггере
    #38905199
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простенький триггер который должен перекидывать добавленую запись в подобную таблицу в другой бд:

Код: sql
1.
2.
3.
4.
CREATE TRIGGER `after_insert_customer`
	AFTER INSERT ON `nrgbinary_platform.customers`
		SELECT @last_id:= LAST_INSERT_ID();
		INSERT INTO `sisense.customers` SELECT * FROM `nrgbinary_platform.customers` WHERE `nrgbinary_platform.customers`.id =  @last_id;



получаю ошибку

автор#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @last_id:= LAST_INSERT_ID()' at line 3

Как исправить!
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905209
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

В триггере нельзя делать просто SELECT. Результат-то некуда отправлять!
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905212
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как мне получить последнтй вставленный ID?

B как мне тогда перекинуть вставленную страку в другую бд?????
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905220
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы попробовал подставить вызов функции вместо переменной.

Хотя, помнится, с LAST_INSERT_ID() внутри триггеров есть какая-то проблема. Но, увы, не помню какая :(
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905353
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAreostar,

В триггере нельзя делать просто SELECT. Результат-то некуда отправлять!

Имхо, такой можно. Результат то он никуда не отправляет.
Здесь ошибка в отсутствии begin
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905365
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizanmiksoftAreostar,

В триггере нельзя делать просто SELECT. Результат-то некуда отправлять!

Имхо, такой можно. Результат то он никуда не отправляет.
Здесь ошибка в отсутствии beginBEGIN/END, действительно, нужен.
Но этот SELECT делает выборку из одного поля и одной записи, которую таки нужно куда-то отправить.
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905371
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

согласен, был не прав. Тогда можно заменить на set
Ну и про FOR EACH ROW ещё забыли
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905646
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переписал так

Код: css
1.
2.
3.
4.
5.
CREATE TRIGGER `after_insert_customer`
	AFTER INSERT ON `nrgbinary_platform`.`customers`
	    FOR EACH ROW BEGIN
			INSERT INTO `sisense`.`customers`(`id`, `regTime`, `firstDepositDate`, `employeeInChargeId`) VALUES (4, '23-03-2011 23:32:43', '23-03-2011 23:32:43', 221);
        END;	



Запрос потои поменять надо будет! Но сейчас сервер ругается именно на запрос

автор#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

Притом что сам запрос работает!

Чего я тут недопонимаю!

И зачем мне FOR EACH ROW если мне надо записать в другую бд только последнию побавленную строку!
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905651
kaelm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
данные добавленной строки вытаскиваются атрибутами NEW.
EACH ROW полюбому нужен - это синтаксис триггера.
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905668
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaelm,

про NEW знаю уже. я так понял что это в VALUES надо из NEW всё впихнуть.

Но ругается сервер помоему не на это.

а больше не видите ошибок?
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905700
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
delimiter $$
CREATE TRIGGER `after_insert_customer`
	AFTER INSERT ON `nrgbinary_platform`.`customers`
	    FOR EACH ROW BEGIN
			INSERT INTO `sisense`.`customers`(`id`, `regTime`, `firstDepositDate`, `employeeInChargeId`) VALUES (4, '23-03-2011 23:32:43', '23-03-2011 23:32:43', 221);
        END$$
delimiter;	
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905713
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir
Код: sql
1.
2.
3.
4.
5.
6.
7.
delimiter $$
CREATE TRIGGER `after_insert_customer`
	AFTER INSERT ON `nrgbinary_platform`.`customers`
	    FOR EACH ROW BEGIN
			INSERT INTO `sisense`.`customers`(`id`, `regTime`, `firstDepositDate`, `employeeInChargeId`) VALUES (4, '23-03-2011 23:32:43', '23-03-2011 23:32:43', 221);
        END$$
delimiter;	



Спасибо, переписал так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
delimiter $$
CREATE TRIGGER `after_insert_customer`
	AFTER INSERT ON `nrgbinary_platform`.`customers`
	    FOR EACH ROW BEGIN
			INSERT INTO `sisense`.`customers`(`id`, `regTime`, `firstDepositDate`, `employeeInChargeId`) VALUES (NEW.id, NEW.regTime, NEW.firstDepositDate, NEW.employeeInChargeId);
        END$$
delimiter;



Синтаксис в порялке! но получаю ощибку:
автор#1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

То есть невозможно вставить туже строку нескольео раз! как мне вставлять строку только один раз? проверять существует ли OLD?

Или ещё что!?
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905719
kaelm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверь триггеры, которые ты уже успел сгоряча насоздавать. удали лишние и пробуй еще раз.
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38905736
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AreostarТо есть невозможно вставить туже строку нескольео раз!Нет. Читайте внимательнее.
...
Рейтинг: 0 / 0
Ошибка в триггере
    #38908082
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял! "Тригер на данное действие и таблицу уже создан"
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка в триггере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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