43 - Indice único (unique) |
Trabajamos con nuestra tabla "libros" de una librería.
Eliminamos la tabla, si existe.
Crearemos dos índices únicos, uno por un solo campo y otro multicolumna:
create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor varchar(30), editorial varchar(15), unique i_codigo (codigo), unique i_tituloeditorial (titulo,editorial) );
Veamos la información de los índices:
show index from libros;
Analicemos esta información:
Table Non_unique Key_name Seq_in_index Column_name Null ____________________________________________________________________________ libros 0 i_codigo 1 codigo libros 0 i_tituloeditorial 1 titulo libros 0 i_tituloeditorial 2 editorial YES
Aparecen 3 filas.
La tabla tiene 2 índices (2 filas corresponden al mismo índice).
Ambos índices son únicos, o sea, no permiten valores repetidos, esto se indica en la columna "Non_unique". La columna "Key_name" indica el nombre de los índices. La columna "Seq_in_index" y "Column_name" muestran la secuencia de la indexación para cada campo del índice "i_tituloeditorial". En el índice "i_tituloeditorial" y el campo "titulo" muestra 1 y para el campo "editorial" muestra 2, esto significa que está indexado en ese orden.
La columna "Null" indica si el campo permite valores nulos; el índice "i_codigo" no los permite; el campo "titulo" del índice "i_tituloeditorial" no los permite (recuerde que lo definimos "not null"), el campo "editorial" si los permite (YES).