sql >> Databáze >  >> RDS >> Mysql

Problém s MySql INSERT MAX()+1

Můžete použít něco takového:

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

Ale takový dotaz může vést ke sporu. Ujistěte se, že jste v transakci a před jejím spuštěním uzamkli tabulku uživatelů. Jinak byste mohli skončit se dvěma Boby se stejným číslem.



  1. #1062 - Duplicitní záznam pro klíč 'PRIMARY'

  2. Kombinace dotazů s vnořeným polem záznamů v datovém typu JSON

  3. Aktualizujte statistiky SQL Server pomocí plánu údržby databáze

  4. Jak anotovat pole automatického přírůstku MYSQL pomocí anotací JPA