Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Atomowe wstawianie MySQL-jeśli-nie-istnieje ze stabilnym automatycznym przyrostem

Pytanie dotyczy tego, jak znormalizować dane, gdy spodziewasz się duplikatów. A potem unikaj „spalania” identyfikatorów.

http://mysql.rjweb.org/doc.php/staging_table#normalization omawia dwuetapowy proces i ma na celu masowe aktualizacje ze względu na szybkie przyjmowanie wierszy. Degeneruje się do jednego rzędu, ale nadal wymaga 2 kroków.

Krok 1 INSERTs dowolne nowe wierszy, tworząc nowe identyfikatory auto_inc.

Krok 2 cofa ids en masse.

Zauważ, że pracę najlepiej wykonywać przy autocommit=ON i poza główną transakcją, która ładuje dane. Pozwala to uniknąć dodatkowej przyczyny spalania identyfikatorów, a mianowicie potencjalnych cofnięć.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalacja Neo4j

  2. Porządkowanie wyników MySQL według sekwencji IN?

  3. MySQL - Liczenie dwóch rzeczy o różnych warunkach

  4. SELECT * FROM people WHERE user_id='$user_id' ORDER BY time GROUP BY nazwisko

  5. PHP Sortowanie najbliższych współrzędnych