Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 2 условия в 1 тригер  [new]
кириллk
Member

Откуда:
Сообщений: 1046
Добрый день!

Можно ли так сделать?

Есть 2 таблицы ("а","б")

я хочу сделать тригер,чтобы выполнялось условие:

когда из таблицы "а" произошла вставка строчки в таблицу "б", строчка из таблицы "а" удалилась

Delimiter $$
CREATE TRIGGER `insert_customer`
AFTER INSERT ON t2
FOR EACH ROW BEGIN

delete from t1 where id = new.id;
END;


ошибка Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
22 окт 15, 15:45    [18312665]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 17495
Этот код не контролирует, откуда взяты данные для insert. Решение заведомо неверное.
Для реализации озвученных требований рекомендую вынесение логики в ХП. Тогда и триггер не нужен.
22 окт 15, 15:54    [18312740]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
кириллk
Member

Откуда:
Сообщений: 1046
Akina
Этот код не контролирует, откуда взяты данные для insert. Решение заведомо неверное.
Для реализации озвученных требований рекомендую вынесение логики в ХП. Тогда и триггер не нужен.


логика что в процедуре что в тригере будет одинаковая.
мне важно чтобы запуск был по событию, поэтому тригер
22 окт 15, 16:33    [18312991]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
кириллk
Member

Откуда:
Сообщений: 1046
кириллk
Akina
Этот код не контролирует, откуда взяты данные для insert. Решение заведомо неверное.
Для реализации озвученных требований рекомендую вынесение логики в ХП. Тогда и триггер не нужен.


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



Обсуждение данной ошибки
http://www.sql.ru/forum/1004674/trigger-oshibka-1442
22 окт 15, 16:39    [18313039]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 17495
кириллk
мне важно чтобы запуск был по событию, поэтому тригер

Совершенно невменяемо. По какому именно, блин, событию?
22 окт 15, 16:45    [18313074]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
miksoft
Member

Откуда:
Сообщений: 36800
кириллk,

А на другой таблице нет триггеров?
Каким запросом добиваетесь сработки показанного триггера?
22 окт 15, 17:11    [18313223]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
кириллk
Member

Откуда:
Сообщений: 1046
miksoft
кириллk,

А на другой таблице нет триггеров?
Каким запросом добиваетесь сработки показанного триггера?



Думал как то так сделать

Delimiter $$
CREATE TRIGGER `insert_customer`
AFTER INSERT ON t1
FOR EACH ROW BEGIN

insert into t2
select new.id

delete from t1 where id = new.id;
END;
22 окт 15, 17:17    [18313257]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
miksoft
Member

Откуда:
Сообщений: 36800
кириллk
miksoft
кириллk,

А на другой таблице нет триггеров?
Каким запросом добиваетесь сработки показанного триггера?



Думал как то так сделать

Delimiter $$
CREATE TRIGGER `insert_customer`
AFTER INSERT ON t1
FOR EACH ROW BEGIN

insert into t2
select new.id

delete from t1 where id = new.id;
END;
А это зачем?
Рассказывайте задачу целиком, иначе у нас ничего не получится.
22 окт 15, 17:19    [18313278]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
кириллk
Member

Откуда:
Сообщений: 1046
Akina
кириллk
мне важно чтобы запуск был по событию, поэтому тригер

Совершенно невменяемо. По какому именно, блин, событию?


Видимо я плохо объяснил:


Мне нужно чтобы при вставке в таблицу А, происходила вставка в таблицу Б

Когда данные вставились, надо очистить запись, а я не знаю какую запись надо удалить.

думаю сделать через курсор и вызывать в цикле процедуру с динамическим sql
22 окт 15, 17:20    [18313285]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 13879
автор
Мне нужно чтобы при вставке в таблицу А, происходила вставка в таблицу Б

Когда данные вставились, надо очистить запись, а я не знаю какую запись надо удалить.

думаю сделать через курсор и вызывать в цикле процедуру с динамическим sql

судя по профилю - не новичок , а вопрос сформулировать - проблема
три строки Ю и на каждую возникают по два+ вопроса
22 окт 15, 17:33    [18313343]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
miksoft
Member

Откуда:
Сообщений: 36800
кириллk
когда из таблицы "а" произошла вставка строчки в таблицу "б", строчка из таблицы "а" удалилась
кириллk
Мне нужно чтобы при вставке в таблицу А, происходила вставка в таблицу Б
А не проще две таблицы в одну объединить?
22 окт 15, 17:40    [18313391]     Ответить | Цитировать Сообщить модератору
 Re: 2 условия в 1 тригер  [new]
tanglir
Member

Откуда:
Сообщений: 30154
miksoft
кириллk
когда из таблицы "а" произошла вставка строчки в таблицу "б", строчка из таблицы "а" удалилась
кириллk
Мне нужно чтобы при вставке в таблицу А, происходила вставка в таблицу Б
А не проще две таблицы в одну объединить?
В качестве изврата можно сделать триггер на before delete исходной таблицы, в котором и будет и производиться вставка дынных во вторую.
23 окт 15, 14:49    [18317173]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить