ufm: (Default)
[personal profile] ufm

О как.
Если написать

create procedure insert_gws(in a INT, in b INT)
begin
insert into n set `aa`=a, `bb`=b;
end$$

CREATE TRIGGER `n_BINS` BEFORE INSERT ON `n` FOR EACH ROW
begin
...
end$$

То при вызове insert_gws триггер срабатывать не будет.
А если наоборот, сначала объявить триггер а потом процедуру — будет.
Это так и задумано, и я просто недопонимаю тайную логику?

Originally published at U.F.M's Homepage. You can comment here or there.

(no subject)

Date: 2013-10-21 09:59 (UTC)
From: [identity profile] ico.livejournal.com
это m$?

(no subject)

Date: 2013-10-21 10:03 (UTC)
From: [identity profile] ufm.livejournal.com
MariaDB (она-же, в девичестве - мускуль)

(no subject)

Date: 2013-10-21 10:12 (UTC)
From: [identity profile] dil.livejournal.com
То есть, несмотря на то, что к моменту вызова insert'а из процедуры триггер уже создан, он всё равно не работает?
Сие есть крайне загадочно..

(no subject)

Date: 2013-10-21 10:18 (UTC)
From: [identity profile] ufm.livejournal.com
Да сам удивляюсь. Причем оно раньше-то работало.

(no subject)

Date: 2013-10-21 10:18 (UTC)
From: [identity profile] dil.livejournal.com
Раньше - это когда?
В смысле, с тех пор обновления какие-нибудь ставились?
Edited Date: 2013-10-21 10:19 (UTC)

(no subject)

Date: 2013-10-21 10:29 (UTC)
From: [identity profile] ufm.livejournal.com
Обновления не ставились точно.
Да мне, собственно, понять - это нормальное поведение или нет.
Надо искать гуру.

(no subject)

Date: 2013-10-21 10:45 (UTC)
From: [identity profile] dil.livejournal.com
Я не гуру, но по-моему, такое поведение ненормально. Триггер привязывается к операции над таблицей, а откуда эта операция вызывается - напрямую из команды или из процедуры - не принципиально.

(no subject)

Date: 2013-10-21 10:19 (UTC)
From: [identity profile] ufm.livejournal.com
Причем триггер точно есть - если попытаться ручками сделать insert - он срабатывает.