Standardisolationsniveauet for InnoDB-tabeller kan gentages. Når dette isolationsniveau er aktivt får vi følgende adfærd (citat fra:https://dev.mysql.com/doc/refman/5.5/en/set-transaction.html ):
Med andre ord:kan du prøve at bruge den primære nøgle i tilstanden WHERE i SELECT? Så for eksempel i stedet for:
START TRANSACTION;
SELECT * FROM productMacAddress WHERE status='free' limit 8 FOR UPDATE;
Prøv:
START TRANSACTION;
SELECT * FROM productMacAddress WHERE id=10 FOR UPDATE;
hvis id er den primære nøgle. Enhver anden kolonne med et unikt indeks ville også fungere. Når du bruger ikke-unikke kolonner i din WHERE-sætning, låser InnoDB en række rækker.