sql >> Database >  >> RDS >> Mysql

Probleem met MySql INSERT MAX()+1

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.



  1. Predicaatvolgorde is belangrijk in uitgebreide evenementen

  2. Hoe kan ik zoeken op datum en tijd in Mysql optimaliseren?

  3. Hoe tekenreeksarray in SQL-parameter door te geven aan IN-clausule in SQL

  4. MuleSoft omarmt GraphQL om API-integratie te bevorderen