Ü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:
|
<<: Beispielcode zum Vergleich verschiedener Syntaxformate von vue3
>>: So installieren Sie eine PHP7 + Nginx-Umgebung unter CentOS6.6
Inhaltsverzeichnis Einführung Ideen Erstellen ein...
Inhaltsverzeichnis 1. Installation 2. Verwenden S...
Aggregatfunktionen Wirkt auf einen Datensatz ein ...
Inhaltsverzeichnis forEach() Methode So springen ...
Eine kurze Analyse von rem Zunächst einmal ist re...
Phänomen Bei der Verwendung von Apache Spark 2.x ...
Vorwort In diesem Artikel sind einige allgemeine ...
Ich habe mich immer gefragt, warum der timestamp ...
Dieser Artikel verwendet Javascript + CSS, um den...
Vorwort Wie wir alle wissen, ist JavaScript im Ke...
Ich habe drei Stunden gebraucht, um MySQL selbst ...
Vorwort 1. Die in diesem Artikel verwendeten Tool...
In den meisten Fällen unterstützt MySQL Chinesisc...
Das Thema Big Data wird immer wichtiger und wer m...
Inhaltsverzeichnis 1. Erstellen Sie die Vue-Umgeb...