sql >> Database >  >> RDS >> Mysql

gelijktijdig vermijden van meerdere dezelfde id in mysql

U wilt een reeks gebruiken .

Twee kanttekeningen:

  • De AUTO_INCREMENT functie die in het artikel wordt beschreven, is niet-standaard en kan overdraagbaarheidsproblemen opleveren bij het overstappen naar een andere database.

  • Als een INSERT wordt afgebroken, wordt een nummer uit de reeks nog steeds verbruikt, dus u kunt gaten in de reeks krijgen. Als dat onaanvaardbaar is, gebruik dan een automatisch gegenereerde reeks voor de primaire (surrogaat) sleutel, en voeg een aparte toewijzing van die sleutel toe aan het "officiële" volgnummer, waardoor uniciteit in de index van die tabel wordt afgedwongen.

Het alternatief is om UNIQUE af te dwingen ness in de database, gebruik dan een geschikt TRANSACTION ISOLATION LEVEL en voeg applicatielogica toe om fouten af ​​te handelen in INSERT .



  1. Gedeeltelijke json-gegevens lezen met MySQL en PHP

  2. Oracle 12.2 Sharding

  3. Onbekende fout:MySQLTransactionRollbackException 1213

  4. Een gegeven lijst met waarden doorlopen in PL/pgSQL