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

jQuery implementiert verschachtelte Tab-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erläuterung des Vue-Router-Routings

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

JS realisiert die Berechnung des Gesamtpreises der Waren im Warenkorb

JS berechnet den Gesamtpreis der Waren im Warenko...

Zusammenfassung der Berechtigungsprobleme bei gespeicherten MySQL-Prozeduren

Ja, gespeicherte MySQL-Prozeduren scheinen sehr s...

Detaillierte Analyse der MySQL-Indizes

Vorwort Wir wissen, dass die Indexauswahl Aufgabe...

Flexibles Boxmodell von CSS und CSS3 zur Anpassung der Elementbreite (-höhe)

1. CSS realisiert eine feste Breite links und ein...

Was ist BFC? So löschen Sie Floats mithilfe von CSS-Pseudoelementen

BFC-Konzept: Der Blockformatierungskontext ist ei...

CSS-Einstellung Div-Hintergrundbild-Implementierungscode

Das Hinzufügen einer Hintergrundbildsteuerung zu ...

CentOS 7 - Lösungsprozessdiagramm für vergessene Passwörter

brauchen Unabhängig davon, ob es sich um ein Wind...

Centos7.5 installiert die Bereitstellung des binären Pakets mysql5.7.24

1. Umweltvorbereitung: Betriebssystem: CentOS Lin...

So stellen Sie eine Verbindung zum MySQL-Visualisierungstool Navicat her

Nach der Installation von Navicat Der folgende Fe...