3
나는 트랜잭션이 MySQL을 (이노)의 원자 것을 읽었습니다하지만 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는 이전 스레드 커밋이 실행되기 전에 할당됩니다. –