Запись QUERY.
Сначала обновите 100 строк, затем извлеките те же 100 записей.
У меня работает несколько процессов, все ищут одну и ту же базу данных. Мне не нужно дублирование из-за очень быстрой и тяжелой работы.В некоторых случаях он дублируется из-за того, что несколько процессов извлекают одни и те же записи, пытаясь предотвратить проблему дублирования.
Сначала я хочу обновить столбец строки 100 - (состояние) с 0 на 1, чтобы другие процессы не увидели ихзаписи, то я хочу вытащить те же обновленные записи.
CREATE DEFINER=`devdba`@`%` PROCEDURE `getQueueRows`()
BEGIN
SET autocommit = 0;
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
START TRANSACTION;
UPDATE Queue
SET status = 1
WHERE status = 0
ORDER BY id ASC
LIMIT 100;
SELECT * FROM Queue
where
status = 1 AND
UPDATED < now();
COMMIT;
END
Пожалуйста, сообщите.