Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: problém s triggerem v MYSQL

PHP PHP problém s triggerem v MYSQL American English version English version

Aktivity (1)
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
Člen
Avatar
Odpovídá na jozifek95
Ori: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.