Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 09 Февраль, 2012, 09:11:40

Страниц: [1]
Печать
Автор Тема: Есть ли возможность в MySQL-триггерах указывать два евента (INSERT OR UPDATE)  (Прочитано 536 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adw0rd    ↓ 
05 Февраль, 2010, 02:39:01
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: Джедаи

Карма: не нужна
Сообщений: 17221
Сила слова: 1.65

В pgSQL, Oracle такое есть. И выглядит примерно так:
 
SQL

CREATE TRIGGER logger BEFORE INSERT OR UPDATE ON websites_website FOR EACH ROW EXECUTE PROCEDURE tsearch2('search_tsv', 'title', 'url', 'description', 'tags');
 

"INSERT OR UPDATE" - вот что мне надо.
 
А MySQL за такое на меня ругается:
SQL

DELIMITER //
CREATE TRIGGER `customers_status_update` AFTER INSERT OR UPDATE ON `customers` FOR EACH ROW
BEGIN
    INSERT INTO `customers_status_log` SET `cust_id` = new.`text_status`, `date` = NOW(), `status` =  new.`text_status`;
END//
 

Если указать INSERT или UPDATE отдельно, то все нормально...
Спустя 57 секунд добавил
Может кто подскажет, моржет я не правильно юзаю?
Записан

FreeBSD, Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch
Кинсбург * Либург * Футбург * Мой блог
AlexB    ↓ 
05 Февраль, 2010, 03:03:53 , спустя 24 минуты 52 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 88
Сообщений: 3280
Сила слова: 2.68

Может сделать отдельную процедуру и два тригера?
Записан

phpdude    ↓ 
05 Февраль, 2010, 03:09:04 , спустя 5 минут 11 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: 19712
Сила слова: 1.72

я чуток не понял, то есть если два евента делать то оба работают, просто их в 1 запросе нельзя указать?
Спустя 15 секунд добавил
если так, то вот не похуй?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
05 Февраль, 2010, 03:25:06 , спустя 16 минут 2 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: Джедаи

Карма: не нужна
Сообщений: 17221
Сила слова: 1.65


Может сделать отдельную процедуру и два тригера?
я так и сделал
Спустя 38 секунд добавил

я чуток не понял, то есть если два евента делать то оба работают, просто их в 1 запросе нельзя указать?
Спустя 15 секунд добавил
если так, то вот не похуй?

вместо одного триггера надо делать два. нет, мне не похуй, было бы похуй не запостил
Записан

FreeBSD, Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch
Кинсбург * Либург * Футбург * Мой блог
AlexB    ↓ 
05 Февраль, 2010, 04:33:16 , спустя 1 час 8 минут 10 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 88
Сообщений: 3280
Сила слова: 2.68

Все клиенты мускульные предлагают радио-баттоны для выбора события, на которое вешается триггер.
Похоже действительно нельзя.
Записан

Страниц: [1]
Печать
 

Перейти в: