sql >> Databasteknik >  >> RDS >> Mysql

Problem med MySql INSERT MAX()+1

Du kan använda något i stil med detta:

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

Men en sådan fråga kan leda till ett rastillstånd. Se till att du är i en transaktion och att du låser användartabellen innan du kör den. Annars kan du få två Bobs med samma nummer.



  1. Hur gör jag databastransaktioner med psycopg2/python db api?

  2. Hur IFNULL() fungerar i MariaDB

  3. 3 sätt att få sammanställningen av en kolumn i MariaDB

  4. Hur man förhindrar uppdateringar av en tabell, med undantag för en situation