Bạn có thể sử dụng một cái gì đó như sau:
INSERT INTO users (user_id, name)
SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';
Nhưng truy vấn như vậy có thể dẫn đến tình trạng chạy đua. Đảm bảo rằng bạn đang tham gia một giao dịch và bạn khóa bảng người dùng trước khi chạy nó. Nếu không, bạn có thể kết thúc với hai Bob có cùng số.