Nếu tự động tăng không đủ tốt cho nhu cầu của bạn, bạn có thể tạo cơ chế trình tự nguyên tử với n các chuỗi được đặt tên như thế này:
Tạo một bảng để lưu trữ các trình tự của bạn:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Giả sử bạn có một hàng cho 'foo' trong bảng, bạn hoàn toàn có thể lấy id dãy tiếp theo như sau:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Không cần khóa. Cả hai câu lệnh cần được thực thi trong cùng một phiên để biến cục bộ @next thực sự được xác định khi lựa chọn xảy ra.