Sorry, wenn das eine dumme Frage ist. Ich habe MySQL InnoDB-Anwendung mit über 70 Tabellen und Transaktionen verwenden. Alles funktioniert gut, außer einer Sache (Tabelle):InnoDB Transaktionsprinzip
CREATE TABLE IF NOT EXISTS `mag_pj_art_sums` (
`id` int(11) NOT NULL, (primary key)
`id_pj` int(11) NOT NULL, (index)
`id_artikal` int(11) NOT NULL, (index)
`kol_stanje_knjig` decimal(18,2) DEFAULT NULL)
ich gleiches Prinzip für alle Abfragen bin mit:
START TRANSACTION (query('set autocommit=0;'); query('START TRANSACTION;');)
SELECT … FROM table WHERE …
UPDATE TABLE SET …. WHERE ….
COMIT
in allen Tabellen Primärschlüssel für SELECT und UPDATE verwendet werden (in unten Abfrageschema).
Außer mag_pj_art_sums wo ich benutze:
SELECT … FROM mag_pj_art_sums WHERE (id_artikal='$id_artikal' AND id_pj='$id_pj')
und
UPDATE mag_pj_art_sums SET … WHERE (id_artikal='$id_artikal' AND id_pj='$id_pj')
Ist es möglich, dass die Zeilen in diesem Szenario nicht gesperrt sind?
Weil, nur in dieser Tabelle habe ich inkonsistente Werte, wenn es gleichzeitige SELECT - UPDATE-Abfrage. Die Abfrage wird ohne Fehler ausgeführt, die Werte werden jedoch NICHT wie erwartet aktualisiert.
Meine Zweifel bestätigt. Vielen Dank – MiTja