SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 24.12.2011 17:22:39

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Триггеры в MySQL

Помогите, пожалуйста, составить хоть какой-нибудь триггер для простой вставки записи в таблицу:

INSERT INTO table1 (row1, row2, row3, row4)
VALUES (text1, text1, text1, text1)

Возможно какое-нибудь ограничение, на подобии: если в таблице 5 записей, то запрос уже не выполняется, а если меньше, то выполняется smile

Перечитал несколько статей про эти триггеры, ничего не понял...

Ой, хотел в тему для новичков написать...(

Отредактированно Electron (24.12.2011 17:23:13)

Неактивен

 

#2 25.12.2011 10:15:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Триггеры в MySQL

Неактивен

 

#3 26.12.2011 07:46:08

ita
Участник
Зарегистрирован: 24.09.2008
Сообщений: 19

Re: Триггеры в MySQL

Например:
Create trigger TRCount5 before Insert on table1
For each row
Begin
    Declare count1 Int;
Select count(*) into Count1 from table1;
If  (Count1<5 ) then
# если записей меньше 5, то выполняется Ваше событие – т.е. здесь операторы
ELSE
# иначе выполняется что-то другое
End IF;
End;

   Сомневаюсь по поводу before, может after? Попробуйте.

Неактивен

 

#4 27.12.2011 18:27:03

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Re: Триггеры в MySQL

Если честно - ничего не понял, что, куда, зачем... ошибки, ошибки, ошибки... sad

Неактивен

 

#5 27.12.2011 18:36:27

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Re: Триггеры в MySQL

Мне ещё дали такой рабочий триггер, MySQL его принял, но он не работает:

DROP TRIGGER IF EXISTS `trig`;
DELIMITER //
CREATE TRIGGER `trig` AFTER INSERT ON `poezdmened`
FOR EACH ROW begin
update mened set famil=famil+1;
end
//
DELIMITER ;

Должен добавлять единицу в поле famil

Неактивен

 

#6 27.12.2011 23:49:42

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Триггеры в MySQL

Electron написал:

Если честно - ничего не понял, что, куда, зачем... ошибки, ошибки, ошибки... sad

Конкретизируйте свои вопросы.
Если вам нужен хоть какой-то триггер, то вы можете посмотреть пример с тестовыми данными в документации http://dev.mysql.com/doc/refman/5.5/en/ … igger.html

Неактивен

 

#7 28.12.2011 01:43:23

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Триггеры в MySQL

Не добавлять единицу, а увеличивать значение famil на 1. При этом сколько инсертов будет, на столько и увеличится значение famil smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#8 29.12.2011 20:18:24

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Re: Триггеры в MySQL

Да мне по заданию нужны просто разные триггеры и процедуры, показать их суть как-бы) Один, который я выше выложил у меня заработал) Нужны какие-нибудь ещё готовые)

Неактивен

 

#9 29.12.2011 21:26:29

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Триггеры в MySQL

См документацию, там есть примеры и триггеров и процедур, и функций. И все гарантированно рабочие smile

Неактивен

 

#10 30.12.2011 12:09:12

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Re: Триггеры в MySQL

Всё что есть в документации о триггерах... (http://www.php.su/mysql/manual/?page=ANSI_diff_Triggers)
Ну тяжело что ли дать простой рабочий триггер?(

Неактивен

 

#11 30.12.2011 12:42:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Триггеры в MySQL

Я ведь уже приводил вам ссылку на документацию парой постов ранее
http://sqlinfo.ru/forum/viewtopic.php?pid=29338#p29338

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson