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

MySQL atomic insert-if-not-existuje se stabilním autoinkrementem

Otázkou je, jak normalizovat data, když očekáváte, že budou duplikáty. A pak se vyvarujte „vypalování“ ID.

http://mysql.rjweb.org/doc.php/staging_table#normalization popisuje proces ve dvou krocích a je zaměřen na hromadné aktualizace díky vysokorychlostnímu příjmu řádků. Zvrhne se na jeden řádek, ale stále vyžaduje 2 kroky.

Krok 1 INSERTs jakékoli nové řádků, čímž se vytvoří nová auto_inc id.

Krok 2 hromadně stáhne ID.

Všimněte si, že práce se nejlépe provádí s autocommit=ON a mimo hlavní transakci, která načítá data. Vyhnete se tak dalšímu důvodu pro vypalování ID, konkrétně potenciálnímu vrácení zpět.




  1. MySQL se na serveru XAMPP nespustí

  2. Jak napsat SQL dotaz, který počítá počet řádků za měsíc a rok?

  3. Pokročilá nápověda k návrhu dotazu SQL (Duplikáty ve dvou tabulkách, více polích, možná vyloučení na základě jednoho pole)

  4. MySql - Jak získat hodnotu v předchozím řádku a hodnotu v následujícím řádku?