正在写入查询。
首先更新100行,然后拉相同的100条记录。
我有多个进程都在寻找同一个数据库,我不想重复,因为非常快和重横切,有些时候它得到了重复,因为多个进程拉相同的记录,试图防止重复问题。
首先,我想将100行的列-(status)从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
请告知。
暂无答案!
目前还没有任何答案,快来回答吧!