Ist es möglich, irgendwie Struktur der MySQL-Datenbank oder nur einige Tabelle mit einfachen Abfrage zu bekommen?Wie Datenbankstruktur in MySQL über Abfrage erhalten
Oder gibt es einen anderen Weg, wie kann ich es tun?
Ist es möglich, irgendwie Struktur der MySQL-Datenbank oder nur einige Tabelle mit einfachen Abfrage zu bekommen?Wie Datenbankstruktur in MySQL über Abfrage erhalten
Oder gibt es einen anderen Weg, wie kann ich es tun?
Ich denke, dass das, was du bist nachdem es DESCRIBE
DESCRIBE table;
auch
können Sie SHOW TABLES
SHOW TABLES;
verwenden, um eine Liste der Tabellen in der Datenbank zu erhalten.
mit diesem:
SHOW CREATE TABLE `users`;
geben Ihnen die DDL für diese Tabelle
DESCRIBE `users`
werden die Spalten in der Tabelle Liste
-1 DDL eine Sprache ist, während das, was Sie mit SHOW CREATE TABLE erhalten, ist eine Aussage – soulmerge
soulmerge, sicher, dass es eine DDL-Anweisung für diese Tabelle – duckyflip
Ja, es ist eine Aussage in einem DDL, sondern ein C-Funktion ist nicht von selbst C. C ist eine Sprache, eine Funktion in einem C-Programm ist ein Konstrukt innerhalb dieser Sprache. – soulmerge
Das ist die SHOW CREATE TABLE Abfrage. Sie können auch die SCHEMA TABLES abfragen.
SHOW CREATE TABLE YourTableName;
Werfen Sie einen Blick auf die INFORMATION_SCHEMA
. TABLES
Tabelle. Es enthält Metadaten zu allen Ihren Tabellen.
Beispiel:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
Dies hat den Vorteil gegenüber anderen Methoden ist, dass man leicht Abfragen wie die oben als Unterabfragen in Ihren anderen Abfragen verwenden können.
Sollte es nicht' information_schema'.columns' sein (mit 'columns' table anstelle von' tables'? Weil 'tables' keine enthält Informationen darüber, welche Typen die Tabellenspalten sind –
Der zweite Vorteil ist, dass das Informationsschema im Speicher beim Serverstart geladen wird, so dass kein hdd-Lesen erforderlich ist – bortunac
Um die gesamte Datenbankstruktur als eine Reihe von CREATE TABLE Aussagen zu erhalten, verwenden mysqldump:
mysqldump database_name --compact --no-data
Für einzelne Tabellen, die Tabellennamen nach DB-Namen in mysqldump hinzuzufügen. Sie erhalten die gleichen Ergebnisse mit SQL und SHOW CREATE TABLE:
SHOW CREATE TABLE table;
Oder DESCRIBE, wenn Sie eine Spalte Angebot bevorzugen:
DESCRIBE table;
Eine Variation der ersten Antwort, die ich nützlich
Öffnen Sie Ihren Befehl gefunden Eingabeaufforderung und Eingabe (Sie müssen nicht bei Ihrem MySQL-Server angemeldet sein)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
Ich mag dies, es gibt die create-Anweisungen. – Thufir
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
wo Table_schema
Datenbankname
SELECT COLUMN_NAME
VON INFORMATION_SCHEMA
ist.COLUMNS
WHERE TABLE_SCHEMA
= 'bodb' UND TABLE_NAME
= 'abc';
Werke für alle Spaltennamen bekommen
Heute verwenden die Menschen DESC
statt DESCRIPTION
. Zum Beispiel: - DESC users;
Um eine bestimmte Datenbank zu verwenden, verwenden Sie: 'SHOW TABLES FROM database_name' – Tarik