триггеры MySQL

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-04-30 1:16:24

мало что понял

они для чтого чтобы делать автоматически функции... напрмиер для подсчета чего-то? (для подсета количесва каки-то единиц)

но эти функции вызвать нельзя, если я правильно понимаю? они встраиваються в таблицу?

кто их использовал и для чего?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: триггеры MySQL

Непрочитанное сообщение zg » 2009-04-30 5:00:57

ProFTP писал(а):напрмиер для подсчета чего-то? (для подсета количесва каки-то единиц)
триггеры срабатывают на определённое условие, например, на вставку записи в таблицу. То есть ты можешь дополнительно контролировать целостность базы, используя не только ключи, но и более сложные схемы.
ProFTP писал(а):но эти функции вызвать нельзя, если я правильно понимаю?
а нафиг их вызывать, если можно создать процедуру? у них другая задача - сидеть в засаде и ждать определённого события
ProFTP писал(а):кто их использовал и для чего?
с учётом того, что пятый мускул далеко не на всех хостинга стоит, то лично я пока нигде не использовал. Да и грузят они базу не подетски.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-04-30 6:07:52

а толк от процедур в SQL кто-то заметил?

я вот нагуглил, оно полезное может быть, но все таки не знаю зачем, или это стиль кодинга где половину писать в SQL процедуре?

но там наверное тоже проблема при переходе на дургую версии СУБДнадо переделывать всё
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-04-30 10:31:50

ну например log-ирования
да и вобще мускульные тригеры и процедуры печальные чуть менее чем полностью, лучше смотреть как это выглядит в postgresql и для чего используется

у мя например в одной базке при вставке в octets делается insert or update в тобличку ostets_day
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-04-30 10:34:20

hizel писал(а): в postgresql и для чего используется
а зачем используються?

ну я имел ввиду и триггеры и процедуры... но они не надо, у меня ORM используется, процедуры не надо
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-04-30 10:40:58

я привел пример
не надо не пользуйся, мне понадобилось я воспользовался
некоторые используют для переноса части логики на СУБД
и ORM тут не причём :unknown:
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-08-03 22:20:32

на MySQL все таки УЖЕ не плохо выглядят процедуры и триггеры, вот тут вот пример с постгре и с мусей, выглядит не плохои http://habrahabr.ru/blogs/mysql/63883/ http://habrahabr.ru/blogs/postgresql/63416/, логику теперь можно ставить в процедуры SQL так как в Firebird, например...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-08-04 8:57:42

хз чо там в фаербирд, а в мускули можно было писать где то с 5.0.15
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-08-04 11:48:54

hizel писал(а):в мускули можно было писать где то с 5.0.15
но они не такие как в оракл например, там можно вообще все писать в самом SQL
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-08-04 12:09:16

ProFTP писал(а):
hizel писал(а):в мускули можно было писать где то с 5.0.15
но они не такие как в оракл например, там можно вообще все писать в самом SQL
и что?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-08-04 12:30:16

в оракл больше овзможностей...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-08-04 15:20:31

ProFTP писал(а):в оракл больше овзможностей...
америку открыл! тебе они нужны эти возможности? ты хоть ставил хотябы тестовый 10g - он сжирает сразу 1 Гб оперативы и продолжает хавать дальше. :roll:
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-08-04 15:37:22

ну например для деревовидных структур, и если таблицы большая, в MySQL решений нет...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-08-04 15:57:36

:ROFL:
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-08-04 16:05:24

решения есть, но если ты например хочешь переместить раздел, то ты сможегь это сделать только чтобы изменить все поддерево, и если в переносимом разделе 10 000 поразделов и вложений, то выдержит ли MySQL 10 000 UPDATE запросов вместе и все вермя их делать?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: триггеры MySQL

Непрочитанное сообщение hizel » 2009-08-04 16:41:29

не прднозначено реляционное хранилище для хранение деревьев, ваш К.О.
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-08-04 16:49:01

там надо на уровне самого хранилица работать, но не на уровне SQL, потомучто нету опреатором для работы с деревом (иначе не правильная архитектура программы) но можно функцию написать для MySQL они там сишное АПИ предоставляет кажется

там что-то вроде бы есть на PostgreSQL
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение ProFTP » 2009-10-05 8:45:06

подскажите где есть статьи полные про процедуры и триггеры http://www.google.com.ua/#hl=uk&q=%D0%B ... 4c8c5f5ddc

я что-то не нашел, посмотрел - ничего не понял
желательно на русском

кто разбирался?
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
buryanov
ст. сержант
Сообщения: 311
Зарегистрирован: 2008-04-29 13:41:48
Откуда: Харьков
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение buryanov » 2009-10-06 22:29:27

ProFTP писал(а):а толк от процедур в SQL кто-то заметил?
я вот нагуглил, оно полезное может быть, но все таки не знаю зачем, или это стиль кодинга где половину писать в SQL процедуре?
но там наверное тоже проблема при переходе на дургую версии СУБДнадо переделывать всё
Движок вашего приложения может быть написан с использованием и\или sql. Если вы обновляете или правите возможности вашего приложения, то вам необходимо будет у всех переставлять приложение, что при достаточно большом колличестве клиентов, может быть проблематично. А так вы обновили логику на сервере и у всех поменялся функционал, грубо говоря, аналогия с вебом. Пример использования тригеров я писал в статье: Защита exim от DDoS
Дмитрий.
buryanov*ukr.net
icq# 118639660; skype: buryanov

Аватара пользователя
buryanov
ст. сержант
Сообщения: 311
Зарегистрирован: 2008-04-29 13:41:48
Откуда: Харьков
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение buryanov » 2009-10-07 15:20:30

как вариант использования тригеров - подсчёт трафика, вы загоняете в таблицу данные, а в таблице настроен тригер, который срабатует на каждую строку и обновляет в другой таблице статистику.
Процедуры очень полезны при использовании запросов со множеством запросов внутри, мускул, по сравнению с oracle тяжелее переносит их, особенно при загруженном сервере. Вы создаёте процедуру и разбиваете свой запрос на несколько, можете спокойно написать логику и тд
Дмитрий.
buryanov*ukr.net
icq# 118639660; skype: buryanov

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: триггеры MySQL

Непрочитанное сообщение weec » 2009-10-15 13:21:21

а на стороне скрипта эту логику нельзя реализовать?
mysql вообще слабовато с логикой работает
для нескольких мелких задач эти триггера сойдут, а если хотите всю логику на mysql взваливать тогда уж лучше заюзать Oracle или че другое хорошо работающее с логикой