Задать вопрос

Про транзакции в SQL?

Всем привет!
Подскажите, пожалуйста, правильно ли я понимаю, что если следующий код будет запущен одновременно (прям миллисекунда в миллисекунду) с нескольких клиентов, то ни один из них не будет работать с одной и той же строкой?

$mysqli = new mysqli("localhost","root",null,"tmp");

$sql = "START TRANSACTION";
$result = $mysqli->query($sql);

$sql = "SELECT * FROM test WHERE disabled = 'N' LIMIT 1 FOR UPDATE";
$result = $mysqli->query($sql);	

$id = mysqli_fetch_assoc($result)['id'];
$sql = "UPDATE test SET disabled = 'Y' WHERE id = $id";
$result = $mysqli->query($sql);	

$sql = "SELECT * FROM test WHERE id = $id";	
$result = $mysqli->query($sql);
var_dump( mysqli_fetch_assoc($result) );

$sql = "COMMIT";
$result = $mysqli->query($sql);	

$mysqli->close();
  • Вопрос задан
  • 3118 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Александр Дементеев К ответам на вопрос (5)
@progressor0 Автор вопроса
Типа таблица =)
e0cdabe2752f76feb248c5cf94afb5b8.png
Ответ написан
Комментировать