Désolé si c'est une question stupide. J'ai l'application MySQL InnoDB avec plus de 70 tables et en utilisant des transactions. Tout fonctionne bien, sauf une chose (tableau):InnoDB principe de transaction
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)
J'utilise même principe pour toutes les requêtes:
Dans tous les tableaux de clé primaireSTART TRANSACTION (query('set autocommit=0;'); query('START TRANSACTION;');)
SELECT … FROM table WHERE …
UPDATE TABLE SET …. WHERE ….
COMIT
est utilisé pour SELECT et UPDATE (en-dessous schéma de requête).
Sauf mag_pj_art_sums où j'utilise:
SELECT … FROM mag_pj_art_sums WHERE (id_artikal='$id_artikal' AND id_pj='$id_pj')
et
UPDATE mag_pj_art_sums SET … WHERE (id_artikal='$id_artikal' AND id_pj='$id_pj')
Est-il possible que ces lignes ne sont pas enfermés dans ce scénario? Parce que, seulement dans cette table j'ai des valeurs incohérentes quand il y a une requête SELECT - UPDATE concurrente. La requête est exécutée sans erreur, mais les valeurs ne sont PAS mises à jour comme elles le devraient.
Mes doutes confirmés. Merci – MiTja