如果自动增量不足以满足您的需求,则可以使用 n个 命名序列创建原子序列机制,如下所示:
创建一个表来存储序列:
CREATE TABLE sequence ( seq_name varchar(20) unique not null, seq_current unsigned int not null);
假设您在表中有一行“ foo”,则可以自动获取下一个序列ID,如下所示:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERe seq_name = 'foo';SELECT @next;
无需锁。这两个语句都需要在同一会话中执行,以便在发生选择时实际定义局部变量@next。



