Comment afficher le schéma d'une table dans une base de données MySQL?


Réponses:


535
describe [db_name.]table_name;

pour une sortie formatée, ou

show create table [db_name.]table_name;

pour l'instruction SQL qui peut être utilisée pour créer une table.


2
Ce n'est pas la réponse. L'OP cherche à comprendre la partie "db_name", et cette solution suppose que vous le savez déjà
Antonio Ortells

40
le PO a accepté cette réponse il y a 7 ans. Je pense qu'il était satisfait de cette réponse.
Omry Yadan

La base de données n'est pas un schéma.
Coder le

1
ou desc [db_name.]table_name;pour faire court.
yakout

1
Dans la défense d'Antionio, certains systèmes se réfèrent à leurs collections de tables associées comme des schémas et non des bases de données. Je ne sais pas lequel ni pourquoi.
dlamblin

108
SHOW CREATE TABLE yourTable;

ou

SHOW COLUMNS FROM yourTable;

18

Vous pouvez également utiliser un raccourci pour décrire comme descpour une description de table.

desc [nom_base.] nom_table;

ou

use db_name;
desc nom_table;

Vous pouvez également utiliser explainpour la description du tableau.

expliquer [nom_base.] nom_table;

Voir doc officiel

Donnera une sortie comme:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(10)     | YES  |     | NULL    |       |
| sex      | varchar(10) | YES  |     | NULL    |       |
| sal      | int(10)     | YES  |     | NULL    |       |
| location | varchar(20) | YES  |     | Pune    |       |
+----------+-------------+------+-----+---------+-------+

12

Peut-être la question doit-elle être un peu plus précise ici sur ce qui est nécessaire car elle peut être lue de deux manières différentes. c'est à dire

  1. Comment obtenir la structure / définition d'une table dans mysql?
  2. Comment puis-je obtenir le nom du schéma / de la base de données dans lequel se trouve cette table?

Compte tenu de la réponse acceptée, le PO souhaitait clairement qu'elle soit interprétée de la première manière. Pour tous ceux qui lisent la question dans l'autre sens, essayez

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';

Votre réponse pour le deuxième point m'a aidé pour ce que je cherche. Mon éditeur a renvoyé l'erreur indiquant "Objet non valide" sur la table que j'ai essayé d'utiliser et je n'ai aucune idée de la base de données ou du schéma sous lequel la table tombe car la table est déjà créée par quelqu'un d'autre, jusqu'à ce que j'obtienne ces informations
mannedear

5
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.