sql >> Databasteknik >  >> RDS >> Mysql

MySQL INSERT ....ON DUPLICATE UPDATE - Lägger till en till autoinkrementet

INSERT ... PÅ DUPLIKATNYCKELUPPDATERING beskrivs som en "mixed-mode insert" för syftet med InnoDB:s AUTO_INCREMENT hantering. Mixed-mode-inlägg är i princip sådana där maximum antal obligatoriska AUTO_INCREMENT värden är kända, men mängden som faktiskt kommer att behövas är inte.

Inlägg i blandat läge hanteras speciellt som standard, som beskrivs i MySQL-dokument :

Om du använder InnoDB är dina alternativ:

  1. Undvik INSERT ... PÅ DUBLIKAT UPPDATERING AV NYCKEL .
  2. Ställ in innodb_autoinc_lock_mode parameter till 0 , för "traditionellt" autoinkrementlåsläge, vilket garanterar att alla INSERT satser kommer att tilldela på varandra följande värden för AUTO_INCREMENT kolumner. Detta görs dock genom att låsa under uttalandet, så det finns en prestandaförlust kopplad till den här inställningen.
  3. (Rekommenderas) Ignorera luckorna i AUTO_INCREMENT kolumn.

Obs:AUTO_INCREMENT hanteringen är helt annorlunda under MyISAM, som inte uppvisar detta beteende.



  1. InnoDB:Operativsystemfel nummer 23 i en filoperation

  2. Vad är kardinalitet i MySQL?

  3. PostgreSQL BESKRIV TABELL Motsvarighet

  4. Hur man visar alla Oracle Database-privilegier för en användare