Die Verwendung eines eindeutigen MySQL-Schlüssels in Abfragen und damit verbundene Probleme

Die Verwendung eines eindeutigen MySQL-Schlüssels in Abfragen und damit verbundene Probleme

1. Tabellenanweisung erstellen:

CREATE TABLE `Mitarbeiter` (
 `emp_no` int(11) NICHT NULL,
 `Geburtsdatum` Datum NICHT NULL,
 `Vorname` varchar(14) NICHT NULL,
 `Nachname` varchar(16) NICHT NULL,
 `Geschlecht` char(1) NICHT NULL,
 `hire_date` Datum NICHT NULL,
 PRIMÄRSCHLÜSSEL (`emp_no`),
 EINDEUTIGER SCHLÜSSEL `idxunique_first_name_gender` (`Vorname`,`Geschlecht`),
 EINDEUTIGER SCHLÜSSEL `uniq_idx_firstname` (`Vorname`,`Geschlecht`)
) ENGINE=InnoDB STANDARD-CHARSET=utf8

2. Eindeutigen Schlüssel hinzufügen:

- Fügen Sie einen eindeutigen Index hinzu. Ändern Sie die Tabelle „Mitarbeiter“. Fügen Sie die Einschränkung „idxunique_first_name_gender unique(first_name, gender)“ hinzu.

3. Abfragetestanweisung:

-- Alle Felder in den Index aufnehmen und die Reihenfolge muss mit der Indexauswahl * from employees where first_name='Christ' and gender='M'; übereinstimmen.
-- Schlüsselspaltenwert: idxunique_first_name_gender
-- Alle Felder in den Index einschließen, aber die Reihenfolge und der Index sind inkonsistent. select * from employees where gender='M' and first_name='Christ';
-- Schlüsselspaltenwert: idxunique_first_name_gender
-- Index im ersten Feld einschließen select * from employees where first_name='Christ';
-- Schlüsselspaltenwert: idxunique_first_name_gender
-- Schließen Sie nicht an erster Stelle stehende Felder in den Index ein. Wählen Sie „* from employees where gender='M';“ aus.
-- Schlüsselspaltenwert: NULL

4. Wenn bei der Abfrage die Where-Bedingung nur Spalten (teilweise oder alle) im eindeutigen Schlüssel enthält und der Spaltenwerttyp const ist. Wenn Sie einen eindeutigen Schlüssel verwenden möchten, muss die Where-Klausel beim Erstellen des eindeutigen Schlüssels die erste Spalte enthalten. Andere Spalten sind optional.

Eine Frage zum eindeutigen MySQL-Schlüssel

Die Benutzer-ID von xxx_tab ist ein eindeutiger Schlüssel. Schauen wir uns den Pseudocode an:

Holen Sie sich user_id=10000 von xxx_tab;
wenn vorhanden 
{
  Rückgabe ok
}
ret = Benutzer-ID=10000 einfügen
wenn wieder ok 
{
  Rückgabe ok
}
return not_ok

Frage: Warum ist das Endergebnis nicht ok?

Tipp: Verteilte Wirkung

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Lösen Sie das Problem, dass SQL Server beim Speichern der Objektzeichenfolge in einen eindeutigen Bezeichner fehlschlägt.
  • Erklärung der MySQL-Indextypen Normal, Unique und Full Text
  • MySQL verwendet UNIQUE, um das Einfügen nicht doppelter Daten zu implementieren
  • So fügen Sie eindeutige Indizes für Felder in MySQL hinzu und löschen sie
  • So lösen Sie das Problem des Einfügens doppelter Werte in eindeutige Spalten in MySQL
  • SQL-Anweisung zum Konvertieren von uniqueidentifier in den Datentyp varchar
  • Detaillierte Erläuterung der Prinzipien und Anwendungen von Unique SQL

<<:  Drei Lösungen für Unterfunktionen, die auf externe Variablen in JavaScript zugreifen

>>:  Tutorial zur Installation und Konfiguration von Tomcat auf Alibaba Cloud Server und zum Hinzufügen externer Netzwerkzugriffsports

Artikel empfehlen

So implementieren Sie die jQuery-Karussellfunktion

In diesem Artikel wird der Implementierungscode d...

Analyse der Informationsarchitektur von Facebook

<br />Original: http://uicom.net/blog/?p=762...

Schritte zur Erstellung einer React Fiber-Struktur

Inhaltsverzeichnis React-Fasererstellung 1. Bevor...

MySQL-Reihe: Redo-Log, Undo-Log und Binlog – ausführliche Erklärung

Durchführung von Transaktionen Das Redo-Protokoll...

Erläuterung des Prozesses des Docker-Packaging-Node-Projekts

Als Backend-Programmierer muss ich manchmal an Fr...

So zeigen Sie die Ausführungszeit von MySQL-Anweisungen über Query Profiler an

Im vorherigen Artikel wurden zwei Methoden zum Üb...

Docker verwendet Root, um in den Container zu gelangen

Führen Sie zuerst den Docker-Container aus Führen...

Warum wird in React nicht empfohlen, einen Index als Schlüssel zu verwenden?

1. Vergleichen Sie den alten virtuellen DOM mit d...

Zwei Tools zum Teilen des Bildschirms im Linux-Befehlszeilenterminal

Hier sind zwei Terminal-Split-Screen-Tools: scree...

Beispiel für die Erschöpfung der MySQL-Auto-Increment-ID

Anzeigedefinitions-ID Wenn die in der Tabelle def...

Implementieren eines Einkaufswagens mit nativem JavaScript

In diesem Artikel wird der spezifische JavaScript...

Detaillierte Erklärung der React-Komponentenkommunikation

Inhaltsverzeichnis Einführung in die Komponentenk...