sql >> Database teknologi >  >> RDS >> Mysql

Problem med MySql INSERT MAX()+1

Du kan bruge noget som dette:

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

Men en sådan forespørgsel kan føre til en racetilstand. Sørg for, at du er i en transaktion, og du låser brugertabellen, før du kører den. Ellers kan du ende med to Bobs med samme nummer.



  1. Oracle:Hvad gør `(+)` i en WHERE-sætning?

  2. SQLite UNION-operatør

  3. MySQL - Vedvarende forbindelse vs forbindelsespooling

  4. Fejl i udviklingen på Heroku