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

Detaillierte Verwendung des Vue More Filter-Widgets

In diesem Artikelbeispiel wird die Implementierun...

Zwei Möglichkeiten zum Einführen von SVG-Symbolen in Vue

So führen Sie SVG-Symbole in Vue ein Methode 1 zu...

Zusammenfassung zur Verwendung von HTML-Meta-Tags (empfohlen)

Meta-Tag-Funktion Der META-Tag ist ein Schlüsselt...

Native JS-Implementierung der Lupenkomponente

In diesem Artikelbeispiel wird der spezifische Co...

Div adaptive Höhe füllt automatisch die verbleibende Höhe

Szenario 1: HTML: <div Klasse="äußere&quo...

So konfigurieren Sie die PDFLatex-Umgebung in Docker

Technischer Hintergrund Latex ist ein unverzichtb...

Win10 Installation von MySQL 5.7 MSI-Version des Tutorials mit Bildern und Text

Ich habe es im MSI-Format installiert, hauptsächl...

CentOS 8 Installationshandbuch für Zabbix 4.4

Zabbix-Serverumgebungsplattform ZABBIX Version 4....

HTML-strukturierte Implementierungsmethode

DIV+CSS-Struktur Lernen Sie CSS-Layout? Sie beherr...

Player in Webseite einbetten Einbettungselement Autostart falsch ungültig

Kürzlich musste ich einen Player in eine Webseite ...

Wie implementiert die MySQL-Datenbank die XA-Spezifikation?

MySQL-Konsistenzprotokoll Was passiert mit nicht ...

TypeScript-Dekorator-Definition

Inhaltsverzeichnis 1. Konzept 1.1 Definition 1.2 ...