申し訳ありませんが、これは愚かな質問です。 私は70以上のテーブルとトランザクションを使用するMySQL InnoDBアプリケーションを持っています。 すべてが一つのことを除いて正常に動作している(表):私は、すべてのクエリに対して同じ原理を使用していInnoDB取引の原則
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)
:PRIMARYキーはSELECTとUPDATEのために使用されているすべてのテーブルの
START TRANSACTION (query('set autocommit=0;'); query('START TRANSACTION;');)
SELECT … FROM table WHERE …
UPDATE TABLE SET …. WHERE ….
COMIT
(以下でクエリスキーマ)。私が使用mag_pj_art_sums除き
:
SELECT … FROM mag_pj_art_sums WHERE (id_artikal='$id_artikal' AND id_pj='$id_pj')
と
UPDATE mag_pj_art_sums SET … WHERE (id_artikal='$id_artikal' AND id_pj='$id_pj')
それは、これらの行は、このシナリオでロックされていないことは可能ですか?
この表では、SELECT - UPDATEクエリが同時に発生すると、一貫性のない値が返されるためです。クエリはエラーなく実行されますが、値は必要に応じて更新されません。
私の疑いが確認されました。ありがとうございました – MiTja