sql >> Databasteknik >  >> RDS >> Mysql

MySQL atomic insert-om-inte-finns med stabil autoincrement

Frågan handlar egentligen om hur man normaliserar data när man förväntar sig att det ska finnas dubbletter. Och undvik sedan att "bränna" ID.

http://mysql.rjweb.org/doc.php/staging_table#normalization diskuterar en 2-stegsprocess och syftar till massuppdateringar på grund av höghastighetsintag av rader. Det urartar till en enda rad, men kräver fortfarande de två stegen.

Steg 1 INSERTs någon ny rader, skapa nya auto_inc-id.

Steg 2 drar tillbaka id-erna i massor.

Observera att arbetet görs bäst med autocommit=ON och utanför huvudtransaktionen som laddar data. Detta undviker en extra orsak till att bränna ID, nämligen potentiella återställningar.




  1. Hämta org.hibernate.exception.JDBCConnectionException:kunde inte köra frågan ens via JNDI

  2. ATAN() Funktion i Oracle

  3. Hur gör jag autentisering i node.js som jag kan använda från min webbplats?

  4. Hur man listar alla lagrade procedurer i Oracle Database