Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
jozifek95
Člen
Avatar
jozifek95:7.7.2014 14:09

Zdravím,
mám takový menší problém s triggerama. Mám trigger který se má spustit po přidání hodnoty do tabulky. Trigger má upravit hodnotu sloupku subPages + 1 u rodičovského řádku.

DELIMITER //
CREATE TRIGGER `update_pages_after_insert` AFTER INSERT ON `pages`
 FOR EACH ROW BEGIN
  UPDATE pages SET subPages = subPages + 1 WHERE id = NEW.parentId;
END
//
DELIMITER ;

Po spuštění příkazu pro vložení řádku:

INSERT INTO `pages` (`name`, `url`, `parentId`, `type`, `active`, `position`) VALUES ('test 10','test_10',1,'topics',1,3)

mi vyskočí chyba:
#1442 - Can't update table 'pages' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Nevíte někdo kde může být problém? co jsem hledal na netu tak tam s touto chybou řešili hlavně to, že upravovali právě vložený řádek. Předem díky za pomoc

 
Odpovědět
7.7.2014 14:09
Avatar
Ori I
Člen
Avatar
Odpovídá na jozifek95
Ori I:8.7.2014 8:23

netuším kde by mohla byť chyba, skús sem postnúť aj štruktúru DB

 
Nahoru Odpovědět
8.7.2014 8:23
Avatar
Petr D
Člen
Avatar
Odpovídá na jozifek95
Petr D:8.7.2014 19:07

Nejsem si jistý, ale nemohlo by to být tím, že nemůžeš updatnout tabulku, do které jsi právě zapsal, protože insert si ji lockne? Možná bys mohl zkusit zaměnit AFTER za BEFORE? :)

 
Nahoru Odpovědět
8.7.2014 19:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.