Autor Zpráva
Jirin
Profil
Zdravím,
potřebuji poradit, stane se mi tak dvakrát za den, že mi na stejném místě v aplikaci dojde k deadlocku. Přitom nevím proč.Může mě někdo nasměrovat?

V dané transakci jsou tyto dotazy:
"START TRANSACTION"
SELECT * FROM stats WHERE article_id = 201 AND date = '2014-11-18' LIMIT 1
UPDATE articles SET views = 2964 WHERE id = 201
UPDATE stats SET views = 18 WHERE id = 1952532
"COMMIT"

Deadlock nastává na dotazu: UPDATE articles SET views = 2964 WHERE id = 201 .

Nějak si nevím rady, někde jsem četl, že problém můžou být cizí klíče. Mám jich na té tabulce několik, jeden jde na stejnou tabulku articles, ostatní jsou na ciz tabulky.
Dusann
Profil
Tak si skús vytvoriť error handler, ktorý ti v prípade deadlocku zopakuje transakciu - takto neprerušíš uživateľovu akciu error odozvou z DB.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: