CPU: 8x Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz, 3.9 GiB RAM
DB: MySQL 5.7.11
tx_isolation: READ_COMMITTED
autocommit: 0
Pravim multikorisničku aplikacuju gde postoje puno malih baza (tipa: opstina(id, naziv, korisnik, datum_vreme), sifra_delatnosti(id, naziv, korisnik, datum_vreme), atc(id, naziv), jkl(id,naziv)).
CREATE TABLE `opstina` (
`id` int(3) unsigned zerofill NOT NULL DEFAULT '000',
`naziv` varchar(145) DEFAULT NULL,
`korisnik` varchar(45) DEFAULT NULL,
`datum_vreme` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT aska_set.opstina
(id,
naziv,
korisnik
)
VALUES
(1,
'VRANJE',
'A');
COMMIT;
Korisnik A:
SELECT * FROM aska_set.opstina WHERE id=1 for update;
Korisnik B
SELECT * FROM aska_set.opstina WHERE id=1 for update;
Korisnik B je u deadlock
Moje pitanje, kako da iščitam da li postoji zaključavanje za id=1, i ko je izvršio zaključavanje?
Tako da obavestim korisnika B da je taj podatak uzeo na korekciju korisnik A i ne dozvolim deadlock.