MySQL erhält schnell den Tabelleninstanzcode ohne Primärschlüssel in der Bibliothek

MySQL erhält schnell den Tabelleninstanzcode ohne Primärschlüssel in der Bibliothek

Überblick

Lassen Sie uns einige SQL-Anweisungen zum Anzeigen von Tabellen ohne Primärschlüssel in der MySQL-Datenbank zusammenfassen. Werfen wir einen Blick darauf.

1. Zeigen Sie die Primärschlüsselinformationen der Tabelle an

--Informationen zum Primärschlüssel der Tabelle anzeigen SELECT
 t.Tabellenname,
 t.CONSTRAINT_TYPE,
 c.SPALTENNAME,
 c.ORDINAL_POSITION 
AUS
 INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
 INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c 
WO
 t.Tabellenname = c.Tabellenname 
 UND t.CONSTRAINT_TYPE = 'PRIMARY KEY' 
 UND t.TABLE_NAME = '<TABLE_NAME>' 
 UND t.TABLE_SCHEMA = '<TABLE_SCHEMA>'; 


2. Zeigen Sie die Tabelle ohne Primärschlüssel an

--Tabelle ohne Primärschlüssel anzeigen SELECT table_schema, table_name,TABLE_ROWS
VON information_schema.tables
WHERE (Tabellenschema, Tabellenname) NOT IN (
SELECT DISTINCT Tabellenschema, Tabellenname
VON information_schema.columns
WO COLUMN_KEY = 'PRI'
)
UND Tabellenschema NICHT IN ('sys', 'mysql', 'information_schema', 'performance_schema'); 


3. Tabelle ohne Primärschlüssel

In der Innodb-Speicher-Engine hat jede Tabelle einen Primärschlüssel, und die Daten werden in der Reihenfolge des Primärschlüssels organisiert und gespeichert. Dieser Tabellentyp wird als indexorganisierte Tabelle bezeichnet.

Wenn bei der Definition einer Tabelle kein Primärschlüssel explizit angegeben wird, wird dieser folgendermaßen ausgewählt bzw. erstellt:

1) Stellen Sie zunächst fest, ob die Tabelle einen „nicht leeren eindeutigen Index“ enthält. Wenn ja,

Wenn es nur einen "nicht leeren eindeutigen Index" gibt, ist dieser Index der Primärschlüssel

Wenn mehrere „nicht leere eindeutige Indizes“ vorhanden sind, wird der erste definierte nicht leere eindeutige Index entsprechend der Reihenfolge der Indizes als Primärschlüssel ausgewählt.

2) Wenn in der Tabelle kein „nicht leerer eindeutiger Index“ vorhanden ist, wird automatisch ein 6-Byte-Zeiger als Primärschlüssel erstellt.

Wenn der Primärschlüsselindex nur einen Indexschlüssel hat, können Sie _rowid verwenden, um den Primärschlüssel anzuzeigen. Der experimentelle Test sieht wie folgt aus:

--Löschen Sie die Testtabelle DROP TABLE IF EXISTS t1;
​
--Erstellen Sie eine Testtabelle CREATE TABLE `t1` (
 `id` int(11) NICHT NULL,
 `c1` int(11) DEFAULT NULL,
 EINDEUTIGE uni_id (id),
 INDEX idx_c1(c1)
)ENGINE = InnoDB CHARSET = utf8;
​
--Testdaten einfügen INSERT INTO t1 (id, c1) SELECT 1, 1;
EINFÜGEN IN t1 (id, c1) AUSWÄHLEN 2, 2;
EINFÜGEN IN t1 (id, c1) AUSWÄHLEN 4, 4;
​
--Daten und _rowid anzeigen
WÄHLEN SIE *, _rowid VON t1; 


Sie können sehen, dass die obige _rowid mit dem Wert von id identisch ist, da die id-Spalte der erste eindeutige und NICHT NULL-Index in der Tabelle ist.

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.

Das könnte Sie auch interessieren:
  • MySQL-Anweisung zum Abrufen fehlender Primärschlüsseltabelleninformationen

<<:  Beispielcode zum Vergleich verschiedener Syntaxformate von vue3

>>:  So installieren Sie eine PHP7 + Nginx-Umgebung unter CentOS6.6

Artikel empfehlen

Detaillierte Verwendung von Echarts in vue2 vue3

Inhaltsverzeichnis 1. Installation 2. Verwenden S...

MySQL verwendet Aggregatfunktionen zum Abfragen einer einzelnen Tabelle

Aggregatfunktionen Wirkt auf einen Datensatz ein ...

Beispiel zum Verlassen der Schleife in Array.forEach in js

Inhaltsverzeichnis forEach() Methode So springen ...

Beispiel für die Anpassung des Vue-Projekts an den großen Bildschirm

Eine kurze Analyse von rem Zunächst einmal ist re...

Apache Spark 2.0-Jobs brauchen lange, bis sie abgeschlossen sind

Phänomen Bei der Verwendung von Apache Spark 2.x ...

Natives Javascript+CSS, um den Karusselleffekt zu erzielen

Dieser Artikel verwendet Javascript + CSS, um den...

Analyse des Ereignisschleifenmechanismus von js

Vorwort Wie wir alle wissen, ist JavaScript im Ke...

Tutorial zur Installation und Konfiguration der Version MySQL 5.7.23

Ich habe drei Stunden gebraucht, um MySQL selbst ...

Eine dauerhafte Lösung für MySQLs Unfähigkeit, Chinesisch zu erkennen

In den meisten Fällen unterstützt MySQL Chinesisc...