3
私は、トランザクションは、MySQL(InnoDBの)の原子であることを読みましたが、私は5つのスレッド内の次のコードをテストするとき、彼らは同じIDを選択:MySQLトランザクションはアトミックですか?
$db->beginTransaction();
$row = $db->fetchRow("SELECT * FROM atomic WHERE selected = 0 LIMIT 1");
sleep(5);
$db->update("atomic", array('selected' => 1), "id = " . $row['id']);
$db->commit();
echo "Selected row: " . $row['id'];
私は、アトミック性ではなくテーブルロックについて質問していると思います... –
ありがとうございます。 (Gracias) – Wiliam
前のスレッドコミットが実行される前に、変数$ rowがすべてのスレッドで割り当てられていると思います。 –