使用原子更新使用innodb声明资源

时间:2014-06-28 05:11:58

标签: mysql innodb atomic

如果我有一个包含需要处理的资源(例如URL)的InnoDB表(见下文):

RESOURCE_TABLE { id int NOT NULL AUTO_INCREMENT, resource varchar(100) NOT NULL, process_id int DEFAULT NULL }

其中未处理的资源将process_id设置为NULL,并且有多个进程争用声明每个资源,我可以这样做:

update RESOURCE_TABLE set process_id={MY_PROCESS_ID} where process_id is NULL order by id ASC LIMIT 1;

为特定流程申请资源?这个更新是原子的,还是我需要创建一个事务?此外,如果我以这种方式申请新资源,资源是否会按顺序声明,而且没有任何空白?

此问题类似于:MySQL Atomic UPDATE in InnoDB vs MyISAM

0 个答案:

没有答案