sql >> Base de Datos >  >> RDS >> Mysql

Problema con MySql INSERT MAX()+1

Puedes usar algo como esto:

INSERT INTO users (user_id, name)
SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';

Pero tal consulta puede conducir a una condición de carrera. Asegúrese de estar en una transacción y de bloquear la tabla de usuarios antes de ejecutarla. De lo contrario, podrías terminar con dos Bobs con el mismo número.