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

unikanie jednoczesnego wstawiania wielu takich samych identyfikatorów w mysql

Chcesz użyć sekwencji .

Dwa zastrzeżenia:

  • AUTO_INCREMENT funkcja opisana w artykule jest niestandardowa i może powodować problemy z przenoszeniem podczas przenoszenia do innej bazy danych.

  • Jeśli INSERT zostanie przerwane, liczba z sekwencji jest nadal zużywana, więc możesz skończyć z dziurami w sekwencji. Jeśli jest to niedopuszczalne, użyj automatycznie wygenerowanej sekwencji dla klucza głównego (zastępczego) i dodaj oddzielną mapę z tego klucza do „oficjalnego” numeru sekwencji, wymuszając unikalność w indeksie tej tabeli.

Alternatywą jest wymuszenie UNIQUE w bazie danych, użyj odpowiedniego TRANSACTION ISOLATION LEVEL i dodaj logikę aplikacji, aby obsłużyć awarię INSERT .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja w celu utworzenia tabeli podnosi Mysql2::Błąd:Tabela nie istnieje

  2. Jak przyznać wszystkie uprawnienia w bazie danych w MySQL?

  3. Monitorowanie używanych połączeń w mysql w celu debugowania „zbyt wielu połączeń”

  4. MySQL Cast jako Boolean

  5. grupuj według pierwszego i ostatniego wystąpienia