Listado completo de tutoriales

83 - Chequear y reparar tablas (check - repair)


Para chequear el estado de una tabla usamos "check table":

 check table libros;

"check table" chequea si una o más tablas tienen errores. Esta sentencia devuelve la siguiente información: en la columna "Table" muestra el nombre de la tabla; en "Op" muestra siempre "check"; en "Msg_type" muestra "status", "error", "info" o "warning" y en "Msg_text" muestra un mensaje, generalmente es "OK".

Existen distintas opciones de chequeo de una tabla, si no se especifica, por defecto es "medium".

Los tipos de chequeo son:

- quick: no controla los enlaces incorrectos de los registros.

- fast: controla únicamente las tablas que no se han cerrado en forma correcta.

- changed: únicamente controla las tablas que se han cambiado desde el último chequeo o que no se cerraron correctamente.

- medium: controla los registros para verificar que los enlaces borrados están bien.

- extended: realiza una búsqueda completa para todas las claves de cada registro.

Se pueden combinar las opciones de control, por ejemplo, realizamos un chequeo rápido de la tabla "libros" y verificamos si se cerró correctamente:

 check table libros fast quick;

Para reparar una tabla corrupta usamos "repair table":

 repair table libros;

"repair table" puede recuperar los datos de una tabla.

Devuelve la siguiente información: en la columna "Table" nuestra el nombre de la tabla; en "Op" siempre muestra "repair"; en "Msg_type" muestra "status", "error", "info" o "warning" y en "Msg_text" muestra un mensaje que genealmente es "OK".

Servidor de MySQL instalado en forma local.

Ingresemos al programa "Workbench" y ejecutemos el siguiente bloque de instrucciones SQL:

 drop table if exists libros;

 create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40),
  autor varchar(30),
  precio decimal(5,2) unsigned,
  primary key(codigo)
 );

 -- Vamos a chequear el estado de la tabla:
 check table libros;

 -- Para realizar un chequeo rápido de la tabla "libros":
 check table libros fast quick;

 -- Si el resultado indica que la tabla está corrupta podemos
 -- emplear "repair table" para repararla:
 repair table libros;

Genera una salida similar a esta:

MySQL check repair

Retornar