Bei der Einführung der Multi-Version Concurrency Control In diesem Artikel konzentrieren wir uns auf die Zeilenkennung
Einfach ausgedrückt: Wenn die Tabelle einen Primärschlüssel oder einen nicht leeren eindeutigen Index enthält und diese nur aus einer ganzzahligen Spalte besteht, können Sie die Achten Sie besonders auf die im Dokument erwähnten Schlüsselwörter: Primärschlüssel, eindeutiger Index, nicht leer, einzelne Spalte und numerischer Typ. Als Nächstes werden wir aus diesen Perspektiven beginnen und das mysteriöse versteckte Feld 1. Primärschlüssel vorhandenBetrachten wir zunächst den Fall, in dem der Primärschlüssel festgelegt ist und einen numerischen Typ hat. Verwenden Sie die folgende Anweisung, um eine Tabelle zu erstellen: CREATE TABLE `table1` ( `id` bigint(20) NICHT NULL PRIMÄRSCHLÜSSEL, `name` varchar(32) STANDARD NULL )ENGINE=InnoDB; Führen Sie nach dem Einfügen der drei Testdaten die folgende Abfrageanweisung aus und fragen Sie Wählen Sie *, _rowid aus Tabelle1 Überprüfen Sie die Ausführungsergebnisse. Es ist ersichtlich, dass Lassen Sie uns einige Schlüsselwörter im zuvor erwähnten Dokument überprüfen und sie separat analysieren. Da der Primärschlüssel ein Feld ungleich Null sein muss, sehen wir uns den Fall an, in dem der Primärschlüssel ein nicht numerisches Feld ist. Die Tabelle wird wie folgt erstellt: CREATE TABLE `table2` ( `id` varchar(20) NICHT NULL PRIMÄRSCHLÜSSEL, `name` varchar(32) STANDARD NULL )ENGINE=InnoDB; Führen Sie dieselbe Abfrage wie oben für 2. Kein Primärschlüssel, aber ein eindeutiger Index vorhandenNachdem wir die beiden oben genannten Primärschlüsseltypen getestet haben, betrachten wir die Situation, in der die Tabelle keinen Primärschlüssel enthält, aber ein eindeutiger Index vorhanden ist. Testen Sie zunächst den Fall, in dem einem numerischen Feld ein nicht leerer eindeutiger Index hinzugefügt wird, und erstellen Sie eine Tabelle wie folgt: CREATE TABLE `table3` ( `id` bigint(20) NICHT NULL EINZIGARTIGER SCHLÜSSEL, `Name` varchar(32) )ENGINE=InnoDB; Die Abfrage wird einwandfrei ausgeführt und Der Unterschied zwischen einem eindeutigen Index und einem Primärschlüssel besteht darin, dass das Feld, in dem sich der eindeutige Index befindet, CREATE TABLE `table4` ( `id` bigint(20) EINDEUTIGER SCHLÜSSEL, `Name` varchar(32) )ENGINE=InnoDB; Führen Sie die Abfrageanweisung aus. In diesem Fall kann Ähnlich wie beim Primärschlüssel testen wir den Fall, in dem der eindeutige Index zu einem nicht numerischen Feld hinzugefügt wird. Als nächstes wird beim Erstellen einer Tabelle dem Feld vom Typ „Zeichen“ ein eindeutiger Index und eine Nicht-Null-Einschränkung hinzugefügt: CREATE TABLE `table5` ( `id` bigint(20), `name` varchar(32) NICHT NULL EINZIGARTIGER SCHLÜSSEL )ENGINE=InnoDB; Dieselbe Abfrage kann Basierend auf den Testergebnissen der oben genannten drei Situationen können wir den Schluss ziehen, dass, wenn kein Primärschlüssel, aber ein eindeutiger Index vorhanden ist, 3. Es gibt einen gemeinsamen Primärschlüssel oder einen gemeinsamen eindeutigen IndexIn den obigen Tests haben wir den Primärschlüssel oder den eindeutigen Index auf eine einzelne Spalte angewendet. Was passiert, wenn ein zusammengesetzter Primärschlüssel oder ein zusammengesetzter eindeutiger Index verwendet wird? Schauen wir uns zunächst die Anweisungen in der offiziellen Dokumentation an:
Einfach ausgedrückt: Wenn ein Primärschlüssel vorhanden ist und dieser nur aus einer Spalte vom numerischen Typ besteht, dann verweist der Wert von Basierend auf dieser Beschreibung testen wir nun die Situation des gemeinsamen Primärschlüssels. Die folgende Tabelle wird mit zwei Spalten numerischer Felder als gemeinsamen Primärschlüssel erstellt: CREATE TABLE `table6` ( `id` bigint(20) NICHT NULL, `no` bigint(20) NICHT NULL, `Name` varchar(32), PRIMÄRSCHLÜSSEL(`id`,`nein`) )ENGINE=InnoDB; Führen Sie die Abfrage aus, deren Ergebnisse nicht in In ähnlicher Weise kann diese Theorie auch auf eindeutige Indizes angewendet werden. Wenn ein nicht leerer eindeutiger Index nicht aus einer einzelnen Spalte besteht, kann 4. Es gibt mehrere eindeutige Indizes In MySQL kann jede Tabelle nur einen Primärschlüssel, aber mehrere eindeutige Indizes haben. Wenn es also mehrere eindeutige Indizes gibt, die die Regeln gleichzeitig erfüllen, auf welchen wird als Wert von
Einfach ausgedrückt: Wenn der erste nicht leere eindeutige Index in der Tabelle nur aus einem Feld vom Typ „Integer“ besteht, verweist Erstellen Sie in der folgenden Tabelle zwei eindeutige Indizes, die beide die Regeln erfüllen: CREATE TABLE `table8_2` ( `id` bigint(20) NICHT NULL, `no` bigint(20) NICHT NULL, `Name` varchar(32), EINZIGARTIGER SCHLÜSSEL (nein), EINDEUTIGER SCHLÜSSEL(id) )ENGINE=InnoDB; Sehen Sie sich die Ergebnisse der Ausführung der Abfrageanweisung an: Sie können sehen, dass der Wert von Wenn also der erste in der Tabelle erstellte eindeutige Index nicht den Referenzregeln von CREATE TABLE `table9` ( `id` bigint(20) NICHT NULL, `no` bigint(20) NICHT NULL, `Name` varchar(32), EINDEUTIGER SCHLÜSSEL `index1`(`id`,`no`), EINDEUTIGER SCHLÜSSEL `index2`(`id`) )ENGINE=InnoDB; Die Abfrage der Tabelle zeigt, dass zwar ein einspaltiger, nicht leerer eindeutiger Index vorhanden ist, die erste nacheinander ausgewählte Spalte jedoch nicht den Anforderungen entspricht, sodass Wenn die Reihenfolge der Anweisungen zum Erstellen des eindeutigen Indexes oben umgekehrt wird, kann 5. Primärschlüssel und eindeutiger Index existieren gleichzeitig Aus dem obigen Beispiel können wir erkennen, dass die Definitionsreihenfolge des eindeutigen Index bestimmt, welcher Index Erstellen Sie mit den folgenden Anweisungen zwei Tabellen. Der einzige Unterschied besteht in der Reihenfolge, in der der Primärschlüssel und der eindeutige Index erstellt werden: CREATE TABLE `table11` ( `id` bigint(20) NICHT NULL, `no` bigint(20) NICHT NULL, Primärschlüssel (ID), EINZIGARTIGER SCHLÜSSEL (nein) )ENGINE=InnoDB; CREATE TABLE `table12` ( `id` bigint(20) NICHT NULL, `no` bigint(20) NICHT NULL, EINDEUTIGER SCHLÜSSEL(id), PRIMÄRSCHLÜSSEL (nein) )ENGINE=InnoDB; Sehen Sie sich die Laufergebnisse an: Daraus lässt sich schließen, dass, wenn sowohl ein qualifizierter Primärschlüssel als auch ein eindeutiger Index vorhanden sind, 6. Kein Primärschlüssel oder eindeutiger Index, der die Anforderungen erfüllt Oben nennen wir Tatsächlich generiert CREATE TABLE `table10` ( `id` bigint(20), `Name` varchar(32) )ENGINE=InnoDB; Zuerst müssen wir die ps -ef | grep mysqld Wie Sie sehen können, ist die Bevor wir beginnen, müssen wir einige Vorbereitungen treffen. In Als Nächstes müssen wir die mit gdb -p 2068 -ex 'p dict_sys->row_id=1' -batch Ergebnisse der Befehlsausführung: Fügen Sie 3 Datenzeilen in eine leere Tabelle ein: INSERT INTO table10 VALUES (100000001, 'Hydra'); INSERT INTO table10 VALUES (100000002, 'Trunks'); INSERT INTO Tabelle10 VALUES (100000003, 'Susan'); Sehen Sie sich die Daten in der Tabelle an. Die entsprechende Verwenden Sie dann den gdb -p 2068 -ex 'p dict_sys->row_id=281474976710656' -batch Ergebnisse der Befehlsausführung: Fügen Sie drei weitere Datensätze in die Tabelle ein: INSERT INTO table10 VALUES (100000004, 'König'); INSERT INTO table10 VALUES (100000005, 'Königin'); INSERT INTO table10 VALUES (100000006, 'Jack'); Betrachtet man alle Daten in der Tabelle, sieht man, dass zwei der drei zuerst eingefügten Daten überschrieben wurden: Warum kommt es zur Datenabdeckung? Lassen Sie uns dieses Ergebnis analysieren. Erstens ist Wenn Wenn dieselbe Wenn der Primärschlüssel oder der eindeutige Index in der Tabelle die oben genannten Anforderungen nicht erfüllt, ist daher die von
Dies ist das Ende dieses Artikels über die spezifische Verwendung von ausgeblendeten Spalten in MySQL. Weitere relevante ausgeblendete MySQL-Spalten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Beispielcode zum gleichmäßigen Verteilen von Elementen mithilfe des CSS3-Flex-Layouts
>>: Verwenden Sie thead, tfoot und tbody, um eine Tabelle zu erstellen
1. Normale Hintergrundunschärfe Code: <Stil>...
Inhaltsverzeichnis Das Prinzip und die Funktion d...
Inhaltsverzeichnis Szenario Code-Implementierung ...
Vorwort Wenn der Code ausgeführt wird und ein Feh...
URL-Loader herunterladen yarn add -D URL-Lader Mo...
Inhaltsverzeichnis Überblick 1. Einfaches Beispie...
Auf immer mehr Websites wird HTML4 durch XHTML ers...
Name Charakter Name Charakter Information Nachric...
Wählen Sie die Kategorieauswahl. Nach Tests könne...
Inhaltsverzeichnis 1. vorErstellen & erstellt...
Beim Ändern des Standarddatums-/Uhrzeitwerts über...
Dieser Artikel beschreibt die Installations- und ...
In diesem Artikel werden MySQL-Funktionen zum Abf...
Es handelt sich dabei ausschließlich um Webseiten...
Ich habe zufällig festgestellt, dass Vue.$set im ...