Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema com MySQL INSERT MAX()+1


Você pode usar algo assim:
INSERT INTO users (user_id, name)
SELECT 1 + coalesce((SELECT max(user_id) FROM users WHERE name='Bob'), 0), 'Bob';

Mas essa consulta pode levar a uma condição de corrida. Verifique se você está em uma transação e bloqueou a tabela de usuários antes de executá-la. Caso contrário, você pode acabar com dois Bobs com o mesmo número.