ВЫБРАТЬ, а затем немедленно УДАЛИТЬ запись mysql

У меня есть сценарий PHP, который выполняет запрос SELECT, а затем немедленно удаляет запись. Есть несколько компьютеров, которые проверяют один и тот же php-файл и извлекают данные из одной и той же таблицы. На каждой удаленной машине выполняется задание cron.

Моя проблема в том, что иногда невозможно удалить достаточно быстро, так как некоторые машины отправляют эхо-запросы в одно и то же время.

У меня вопрос: как я могу ВЫБРАТЬ запись из базы данных и удалить ее до того, как ее захватит следующая машина. На данный момент я просто добавил небольшую задержку, но она работает не очень хорошо. Я пробовал использовать транзакцию, но не думаю, что здесь она применима.

Вот пример фрагмента моего сценария:

<?php

$query = "SELECT * FROM `queue` LIMIT 1";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
    $email = $row['email'];
    $campaign_id = $row['campaign'];
}

$queryx = "DELETE FROM `queue` WHERE `email` = '".$email."'";
$resultx = mysql_query($queryx) or die(mysql_error());

?>

Очень признателен за помощь.

11
задан Brian Tompsett - 汤莱恩 20 August 2015 в 08:28
поделиться