Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Información interna de la Base y sus tablas

Estas en el tema de Información interna de la Base y sus tablas en el foro de Mysql en Foros del Web. Hola a tod@s: Supongamos que tenemos las siguientes sentencias para crear una base de datos y una tabla dentro la propia base de datos: @import ...
  #1 (permalink)  
Antiguo 17/07/2011, 18:32
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 3
Información interna de la Base y sus tablas

Hola a tod@s:

Supongamos que tenemos las siguientes sentencias para crear una base de datos y una tabla dentro la propia base de datos:

Código MySQL:
Ver original
  1. CREATE DATABASE `nombre_bd` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
  2. USE `nombre_bd`;
  3.  
  4. CREATE TABLE IF NOT EXISTS `tabla_1` (
  5.   `titulo` longtext NOT NULL
  6.   PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Vale, para sacar el "DEFAULT CHARACTER SET" y el "COLLATE" de una base de datos, se puede hacer por medio de otra sentencia SQL:

Código MySQL:
Ver original
  1. SELECT default_character_set_name, default_collation_name FROM information_schema.schemata WHERE schema_name='nombre_bd'

Pero ¿hay alguna otra forma similar para sacar datos parecidos referidos a una tabla, como son el "ENGINE" o el "CHARSET" de la tabla?
__________________
Saludos,

zacktagnan.
=================================================
  #2 (permalink)  
Antiguo 17/07/2011, 18:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Información interna de la Base y sus tablas

Básicamente si, lo que sucede es que la información está repartida en diversas tablas.
Consulta los detalles en el manual de referencia: Capítulo 22. La base de datos de información INFORMATION_SCHEMA
Puntualmente, la tabla TABLES es la que contiene la información: 22.1.2. La tabla INFORMATION_SCHEMA TABLES
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/07/2011, 06:14
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 3
Respuesta: Información interna de la Base y sus tablas

Hola:

Gracias gnzsoloyo.

Expongo los pasos seguidos para todo al que le pueda servir de aquí en adelante.

Siguiendo tus recomendaciones, con la siguiente SQL, sacó los datos de tipo de tabla (ENGINE) y cotejamiento de tabla (TABLE_COLLATION) de una determinada tabla de una base de datos específica:
Código MySQL:
Ver original
  1. SELECT ENGINE, TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
  2. WHERE TABLE_SCHEMA = 'nombre_bd' AND TABLE_NAME = 'nombre_tabla';

Tras recorrer el resultado de consulta, esto me puede dar, por ejemplo:
Código PHP:
Ver original
  1. $tbl_engine    = 'MyISAM';
  2. $tbl_collation = 'utf8_general_ci';

Ya tengo entonces el dato del Engine de la tabla. Y para sacar el Charset de la tabla:
Código PHP:
Ver original
  1. $elCollationTBL_arr = explode('_', $tbl_collation, 2);
  2. $tbl_character      = $elCollationTBL_arr[0];

Resultado Final de datos deseados
Código PHP:
Ver original
  1. $tbl_engine    = 'MyISAM';
  2. $tbl_character = 'utf8';

Con todo esto, ya tengo todos los datos que me faltaban para terminar de configurar completamente el script para realizar una copia de seguridad de una base de datos con sus tablas y los registros de éstas.

De nuevo, gracias gnzsoloyo.
__________________
Saludos,

zacktagnan.
=================================================
  #4 (permalink)  
Antiguo 18/07/2011, 06:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Información interna de la Base y sus tablas

Buena idea.
Yo tuve que hacer tareas parecidas para crear una rutina que me actualizase las difernetes instalaciones de una base de datos que había sufrido muchas modificaciones estructurales, pero como estaba instalada en las computadoras de más de veinte lugares, no sabía a ciencia cierta qué estructura tenía en cada una.
Fue una tarea engorrosa, difícil, y muy detallada, porque no podría borrar todo en todos ni necesitaba poner todo en todas.
Un asco

Me alegra que la info sirviera.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: select, sql, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:08.