2013-07-09 27 views
8

Il mio codice è un po 'incasinato, non sono sicuro di dove si trovi il problema, ma sto diventando deadlock senza utilizzare alcuna transazione o blocco della tabella. Qualsiasi informazione su questo sarebbe di aiuto.Come è possibile avere deadlock senza transazioni?

Ho cercato deadlock e sembra che l'unico modo per causarli sia utilizzando le transazioni.

Error Number: 1213 
Deadlock found when trying to get lock; try restarting transaction 
UPDATE `x__cf_request` SET `contact_success` = 1, `se_engine_id` = 0, `is_fresh` = 1 WHERE `id` = '28488' 

Modifica: Perché downvotes? È una domanda valida Se è impossibile, basta dire perché, in modo che altre persone possano vedere quando si imbattono in questo problema.

+0

Così zoppo che si stava downvoted. Sto avendo un problema simile e la tua domanda è la più vicina che ho trovato che abbia bisogno di una risposta ... facci sapere se hai mai risolto questo! –

risposta

1

In InnoDB ogni istruzione viene eseguita in una transazione; BEGIN e autocommit = 0 vengono utilizzati per transazioni con più estratti conto. Detto questo, il deadlock si verifica tra diverse transazioni.

Sembra che non si abbia indice sul campo id o più di un record abbiano lo stesso id. In caso contrario, si ha un blocco dell'indice in posizione. Per diagnosticare ulteriormente, è necessario fornire l'output di SHOW ENGINE InnoDB STATUS

Problemi correlati