Невозможно обновить таблицу table2 в сохраненной функции / триггере, потому что она уже используется оператором, который вызвал эту сохраненную функцию / триггер - PullRequest
0 голосов
/ 14 июля 2020

У меня есть следующие таблицы

create table table1(
`Aid` int NOT NULL auto_increment,
`A` int NOT NULL,
`B` int NOT NULL,
primary key(Aid)
);

create table table2(
`Bid` int NOT NULL auto_increment,
`C` int NOT NULL,
`D` int NOT NULL,
primary key(Bid)
);

create table table3(
`ABid` int NOT NULL auto_increment,
`E` int NOT NULL,
`F` int NOT NULL,
`G` int NOT NULL,
`H` int NOT NULL,
primary key(ABid)
);

И у меня есть триггер

delimiter //

create trigger addrecords
after insert on table2
for each row
begin
  insert into table3(E,F,G,H) select a.Aid,b.Bid,b.C,b.D from table1 a,table2 b;
END; //

До этого все в порядке, но есть проблема со следующим триггером

delimiter //

create trigger delrecords
after insert on table3
for each row
begin
  delete from table2;
END; //

Когда строка вставляется в table2, тогда будет вызван триггер, и после этого я хочу удалить все записи из table2, чтобы для следующей вставки в table2 он был пуст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...