Je kunt zoiets als dit gebruiken:
INSERT INTO users (user_id, name)
SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';
Maar zo'n zoekopdracht kan leiden tot een raceconditie. Zorg ervoor dat u zich in een transactie bevindt en dat u de gebruikerstabel vergrendelt voordat u deze uitvoert. Anders krijg je misschien twee Bobs met hetzelfde nummer.