2008-10-17 13 views

Respuesta

398

SHOW TABLE STATUS WHERE Name = 'xxx'

esto le dará (entre otras cosas) una columna de Engine, que es lo que desea.

+2

Si mi mesa está dañado, es simplemente muestra del motor = NULL y tiene un "comentario" que me dice que reparar la tabla. Sin embargo, antes de saber cómo reparar la mesa, supongo que necesito saber el motor (no he llegado tan lejos para ser sincero). Por lo tanto, el comentario de @ Jocker a continuación fue mucho más útil para mí. – harperville

+0

@Greg, ¿Deberíamos usar esto o la solución de Jocker? – Pacerier

+0

@Pacerier - Ambos funcionan bien. La diferencia es que esta solución proporciona la información para una tabla, mientras que la solución de Jocker muestra el tipo de motor para todas las tablas en una base de datos (aunque también es un poco más legible). – kramer65

48
SHOW CREATE TABLE <tablename>; 

menos analizable, pero más legible que SHOW TABLE STATUS.

35

o simplemente

show table status;

simplemente que esto LLIST todas las tablas en la base de datos.

+0

Por alguna razón, devuelve 0 filas en mi caso ... –

+0

@NikolaiSamteladze, ¿Tienes tablas en el db seleccionado? – Pacerier

195

Para mostrar una lista de todas las tablas de una base de datos y sus motores, utilice esta consulta SQL:

SELECT TABLE_NAME, 
     ENGINE 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'dbname'; 

Reemplazar dbname con su nombre de base de datos.

+2

Esto es genial b/c filtra todo excepto nombre de tabla y motor. – Tone

+0

Para obtener motor de la tabla específica, se puede utilizar: 'SELECT MOTOR DE INFORMATION_SCHEMA.TABLES DONDE TABLE_SCHEMA = '' Y TABLE_NAME = ''' – userlond

12

poco de un pellizco a la respuesta del Jocker (que iba a publicar como un comentario, pero no tienen suficiente karma aún):

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL; 

Esto excluye vistas MySQL de la lista, que no tienen un motor.

9
SHOW CREATE TABLE <tablename>\G 

se formatearlo mucho mejor en comparación a la salida del

SHOW CREATE TABLE <tablename>; 

El \G truco también es útil recordar para muchas otras consultas/comandos.

+0

\ G hack es sólo bajo MySQL cli – gaRex

0

ir a la base de datos information_schema allí encontrará la tabla 'tablas' y luego seleccionarla;

Mysql> use information_schema; Mysql> seleccionar nombre_tabla, motor de tablas;

4
mysqlshow -i <database_name> 

mostrará la información para todas las tablas de una base de datos específica.

mysqlshow -i <database_name> <table_name> 

lo haremos solo para una tabla específica.

+1

Esto no responde a la pregunta porque muestra los motores para todas las tablas. El iniciador de la pregunta buscaba información con respecto a una tabla específica. – Tass

0

Sin embargo, otra manera, tal vez el más corto para obtener el estado de un solo o combinado conjunto de tablas:

SHOW TABLE STATUS LIKE 'table'; 

Luego, puede usar, como operadores, por ejemplo:

SHOW TABLE STATUS LIKE 'field_data_%'; 
2

Si usted es una usuario de Linux:

para mostrar los motores para todas las tablas para todas las bases de datos en un servidor MySQL, sin tablas, information_schemamysql, performance_schema:

less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t) 

Puede que te guste esto, si estás en linux, al menos.

Se abrirá toda la información para todas las tablas en less, presione -S para cortar líneas demasiado largas.

Ejemplo de salida:

--------------------information_schema-------------------- 
Name              Engine    Version Row_format Rows Avg_row_length Data_length Max_data_length  Index_length Data_free Auto_increment Create_time Update_time Check_time C 
CHARACTER_SETS            MEMORY    10  Fixed  NULL 384    0   16434816   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATIONS             MEMORY    10  Fixed  NULL 231    0   16704765   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATION_CHARACTER_SET_APPLICABILITY      MEMORY    10  Fixed  NULL 195    0   16357770   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLUMNS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
COLUMN_PRIVILEGES           MEMORY    10  Fixed  NULL 2565   0   16757145   0    0   NULL   2015-07-13 15:48:45  NULL  N 
ENGINES              MEMORY    10  Fixed  NULL 490    0   16574250   0    0   NULL   2015-07-13 15:48:45  NULL  N 
EVENTS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
FILES              MEMORY    10  Fixed  NULL 2677   0   16758020   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_STATUS            MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_VARIABLES           MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
KEY_COLUMN_USAGE           MEMORY    10  Fixed  NULL 4637   0   16762755   0 

. 
. 
. 
3

Si estás usando el MySQL Workbench, puede hacer clic en la tabla y seleccione 'alter table'.

En esa ventana puede ver su Motor de mesa y también cambiarlo.

Cuestiones relacionadas