Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
62 / 61 / 14
Регистрация: 16.12.2012
Сообщений: 604
1

Create trigger

18.07.2016, 11:34. Показов 542. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Написал стриггер для логирования
MySQL
1
2
3
4
5
create trigger tplog_insert_personal AFTER INSERT ON personal
FOR EACH ROW BEGIN
 insert tp_log (id_personal, `date`,`bit`)
 select 3,NOW(),1
end
А он мне ошибку выдает
Error Code: 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 'insert tp_log (id_personal, `date`,`bit`) select 3,NOW(),1 end' at line 3 0.000 sec
Где синтаксис не правильный понять не могу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2016, 11:34
Ответы с готовыми решениями:

Trigger Que
Что такое Trigger Que? чтото гугл мне ничего членораздельного не ответил.

Ошибка в TRIGGER
Доброго времени суток, уважаемые Форумчане) Друзья, пытаюсь создать триггер который удалял бы...

Создание trigger в musql
Здравствуйте! Столкнулась со следующей проблемой: есть trigger ins, который при добавлении записи...

помогите с триггером БД (TRIGGER). пожалуйста.
здравствуйте. помогите пожалуйста с триггером. разбирался с ним долго таки.не получается что-то....

4
476 / 239 / 114
Регистрация: 12.05.2016
Сообщений: 647
18.07.2016, 13:14 2
две точки с запятой пропустил. после инсерта и после END;
0
62 / 61 / 14
Регистрация: 16.12.2012
Сообщений: 604
18.07.2016, 13:16  [ТС] 3
Anvano,
MySQL
1
2
3
4
5
create trigger tplog_insert_personal AFTER INSERT ON personal
FOR EACH ROW BEGIN
 insert tp_log (id_personal, `date`,`bit`)
 select 3,NOW(),1;
end;
так?
0
476 / 239 / 114
Регистрация: 12.05.2016
Сообщений: 647
18.07.2016, 13:27 4
Ну, как-то так, да.

Только почему у вас в качестве ID вставляется константа = "3" ?
Вы же хотите наверное логировать ID вставляемой записи ?

SQL
1
2
INSERT tp_log (id_personal, `date`,`bit`)
 SELECT  NEW.id, NOW(), 1;
0
62 / 61 / 14
Регистрация: 16.12.2012
Сообщений: 604
18.07.2016, 13:42  [ТС] 5
Anvano, это id будет передаваться из таблицы personal. А поле для newid я еще не делал. это тестовая таблица.

Ошибку нашел. Подсказали. Надо в начале добавить
DELIMITER |
и все заработает
MySQL
1
2
3
4
5
DELIMITER |
CREATE TRIGGER tplog_insert_personal AFTER INSERT ON personal
FOR EACH ROW BEGIN
 INSERT INTO `tp_log` (`id_personal`, `date`, `bit`) SELECT (45 '45', NOW(),1 '1');
END;
0
18.07.2016, 13:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2016, 13:42
Помогаю со студенческими работами здесь

Максимально простой TRIGGER для ID сущностей
в общем мне нужно чтоб я мог с бекэнда подавать в БД сущность без айдишника, а БД сама бы...

Can't update table 'address' in stored function/trigger because it is already used by statement which invoked
Есть триггер, который не позволяет добавлять в таблицу address строки, которые уже есть USE...

Как удалить строки из одной таблицы, когда совершают удаление из другой TRIGGER
Добрый день. Я новичок с триггерами и пытаюсь совершить событие удаление строк с полем...

SHOW CREATE TABLE
При выполнении запроса SHOW CREATE TABLE `какая-то таблица`, результат мне возвращает 2 поля -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru