martes, 30 de octubre de 2012

44 - Borrar indice (drop index)

Para eliminar un índice usamos "drop index".
Ejemplo:

 drop index i_editorial on libros;
 drop index i_tituloeditorial on libros;
 
Se elimina el índice con "drop index" seguido de su nombre y "on" seguido del nombre de la tabla a la cual pertenece.

Podemos eliminar los índices creados con "index" y con "unique" pero no el que se crea al definir una clave primaria. Un índice PRIMARY se elimina automáticamente al eliminar la clave primaria (tema que veremos más adelante).


PROBLEMA RESUELTO

Trabajamos con nuestra tabla "libros" de una librería.

Eliminamos la tabla, si existe.

Creamos dos índices, uno común, por un solo campo y otro único multicolumna:

 create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40) not null,
  autor varchar(30),
  editorial varchar(15),
  primary key (codigo),
  index i_editorial (editorial),
  unique i_tituloeditorial (titulo,editorial)
 );
 
Veamos la información de los índices:

 show index from libros;
 
Vemos que tenemos tres índices, uno creado automáticamente al definir la clave primaria (PRIMARY).

Para eliminar los índices creados con "index" y con "unique" usamos "drop index".

Eliminamos el índice "i_editorial":

 drop index i_editorial on libros;
 
Eliminamos el índice "i_tituloeditorial":

 drop index i_tituloeditorial on libros;
 
Si tipeamos:

 show index from libros;
 
vemos que solamente queda el índice creado al definir la clave primaria. Este tipo de índice no puede borrarse con "drop index".


PROBLEMA PROPUESTO

Un instituto de enseñanza guarda los datos de sus alumnos en una tabla llamada 
"alumnos".

1- Elimine la tabla si existe.

2- Cree la tabla con la siguiente estructura:
 
  create table alumnos(
  año year not null,
  numero int unsigned not null,
  nombre varchar(30),
  documento char(8) not null,
  domicilio varchar(30),
  ciudad varchar(20),
  provincia varchar(20),  
  primary key(año,numero),
  unique i_documento (documento),
  index i_ciudadprovincia (ciudad,provincia),
 );

3- Vea los índices de la tabla.

4- Elimine el índice "i_ciudadprovincia".

5- Verifique la eliminación usando "show index".

6- Intente eliminar el índice PRIMARY.

7- Elimine el índice único.

8- Verifique la eliminación usando "show index".
 
 
Otros problemas: 

Una clínica registra las consultas de los pacientes en una tabla llamada 
"consultas".

1- Elimine la tabla si existe.

2- Cree la tabla con la estructura siguiente:
 
  create table consultas(
  fecha date,
  numero int unsigned,
  documento char(8) not null,
  obrasocial varchar(30),
  medico varchar(30),
  primary key(fecha,numero),
  unique i_consulta(documento,fecha,medico),
  index i_medico (medico),
  index i_obrasocial (obrasocial)
 );

4- Vea los índices.

5- Elimine el índice único.

6- Elimine el índice "i_medico".

7- Verifique las eliminaciones anteriores visualizando los índices.

8- Elimine el índice "i_obrasocial".
 


No hay comentarios:

Publicar un comentario