Eindeutige Auto-Inkrementierungsschlüssel für verschiedene Primärschlüsselwerte verwalten
Hintergrund
Ein Benutzer stößt auf die Notwendigkeit, eine Tabelle mit einem Primärschlüssel zu erstellen ( z. B. id) mit automatischer Inkrementierungsfunktion und einem weiteren Schlüssel (z. B. uid), die auf Benutzer verweist. Sie suchen nach einer Möglichkeit, eindeutige Autoinkrementwerte für id für jeden einzelnen uid-Wert zu generieren.
Lösung
MyISAM Engine von MySQL
- MyISAM unterstützt die automatische Inkrementierung von Sekundärspalten in Mehrspaltige Indizes.
- Dies generiert id-Werte als maximalen auto_increment_column-Wert plus 1 für ein bestimmtes uid-Präfix.
Alternative Ansätze
Trigger
- Automatisches Inkrementverhalten kann ohne Tabellensperre nicht zuverlässig emuliert werden.
- Gleichzeitige Einfügungen können zu doppelten IDs führen Werte aufgrund von Zeitproblemen.
Zusätzlich Überlegungen
-
Exklusive Tabellensperre: Der Erwerb einer exklusiven Tabellensperre ermöglicht kontrollierte Einfügungen, kann sich jedoch auf die Leistung auswirken.
-
Nicht-transaktionale Lösung: Verfolgen der zuletzt generierten id pro uid Außerhalb des Transaktionsbereichs kann die Implementierung und Wartung schwierig sein.
-
Eindeutige vs. aufeinanderfolgende Werte: Stellen Sie sicher, dass Lücken in id-Werten aufgrund von Rollbacks, fehlgeschlagenen Einfügungen usw. richtig behandelt werden. oder Löschungen.
Andere Datenbank-Engines
- Die bereitgestellten Die Lösung ist spezifisch für die MyISAM-Engine von MySQL.
- Andere Datenbank-Engines unterstützen diese Funktionalität möglicherweise nicht nativ.
Das obige ist der detaillierte Inhalt vonWie kann ich für jeden einzelnen Benutzer in MySQL eindeutige automatisch inkrementierende IDs generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!