È possibile ottenere in qualche modo una struttura del database MySQL o solo una tabella con una query semplice?Come ottenere la struttura del database in MySQL tramite query
Oppure c'è un altro modo, come posso farlo?
È possibile ottenere in qualche modo una struttura del database MySQL o solo una tabella con una query semplice?Come ottenere la struttura del database in MySQL tramite query
Oppure c'è un altro modo, come posso farlo?
Penso che quello che stai dopo è DESCRIBE
DESCRIBE table;
È inoltre possibile utilizzare SHOW TABLES
SHOW TABLES;
per ottenere un elenco delle tabelle nel database.
utilizza questo:
SHOW CREATE TABLE `users`;
vi darà la DDL di quel tavolo
DESCRIBE `users`
elencherà le colonne nella tabella che
-1 DDL è un linguaggio, mentre quello che si ottiene con SHOW CREATE TABLE è un soulmerge dichiarazione – soulmerge
, sicuro che sia una dichiarazione DDL per quella tabella – duckyflip
Sì, è una dichiarazione in un DDL, ma un La funzione C non è di per sé C. C è un linguaggio, una funzione in un programma C è un costrutto all'interno di quel linguaggio. – soulmerge
Questa è la query SHOW CREATE TABLE. Puoi anche interrogare lo SCHEMA TABLES.
SHOW CREATE TABLE YourTableName;
Date un'occhiata al INFORMATION_SCHEMA
. TABLES
tabella. Contiene metadati relativi a tutti i tuoi tavoli.
Esempio:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
Il vantaggio di questo rispetto ad altri metodi è che si può facilmente utilizzare le query come quella di cui sopra come subquery nelle vostre altre query.
Non è che dovrebbe essere' information_schema' .columns' (usando la tabella 'columns' invece di' tables'? Perché 'tables' non contiene alcun informazioni su quali tipi sono le colonne della tabella –
Il secondo vantaggio è che lo schema delle informazioni è caricato in memoria all'avvio del server, quindi nessuna lettura dell'hardware necesario – bortunac
per ottenere l'intera struttura del database come un insieme di CREATE TABLE dichiarazioni, utilizzare mysqldump:
mysqldump database_name --compact --no-data
Per le tabelle singoli, aggiungere il nome della tabella dopo il nome db in mysqldump. È possibile ottenere gli stessi risultati con SQL e SHOW CREATE TABLE:
SHOW CREATE TABLE table;
O DESCRIBE, se si preferisce un elenco di colonna:
DESCRIBE table;
Una variante della prima risposta che ho trovato utile
Aprire il comando prompt e invio (non è necessario accedere al server mysql)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
Mi piace, dà le dichiarazioni create. – Thufir
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
dove Table_schema
è il nome del database
SELEZIONA COLUMN_NAME
DA INFORMATION_SCHEMA
.COLUMNS
DOVE TABLE_SCHEMA
= 'bodb' E TABLE_NAME
= 'abc';
lavori per ottenere tutti i nomi di colonna
Al giorno d'oggi, le persone utilizzano DESC
invece di DESCRIPTION
. Ad esempio: - DESC users;
Per utilizzare il database specifico: 'SHOW TABLES FROM database_name' – Tarik