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

MySQL-Lerndatenbankbetrieb DML ausführliche Erklärung für Anfänger

Inhaltsverzeichnis 1. Anweisung einfügen 1.1 Einf...

Verschieben Sie die MySQL-Datenbank unter Windows auf eine andere Festplatte

Vorwort Heute habe ich MySQL installiert und fest...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.11

Die Installations- und Konfigurationsmethoden von...

HTML-Elemente (Tags) und ihre Verwendung

a : Gibt die Start- oder Zielposition eines Hyper...

Lösung für das Fehlen der my.ini-Datei in MySQL 5.7

Was ist my.ini? my.ini ist die in der MySQL-Daten...

Detaillierte Erklärung der Datenmengen von Docker-Containern

Was ist Schauen wir uns zunächst das Konzept von ...

Detaillierte Analyse des Tomcat-Servers des Centos 7-Systems

Inhaltsverzeichnis 1. Der Ursprung von Tomcat 1. ...