jl0x61:
Acabo de aprender cómo crear índices en MySQL y ejecutado como una consulta en MySQL Workbench se conecta a una instancia de MySQL 8.0:
use test;
create table idx (
id int not null unique,
name char(5),
primary key(id),
key(name)
);
show index from idx;
La rejilla resultado es:
# Table, Non_unique, Key_name, Seq_in_index, Column_name, Collation, Cardinality, Sub_part, Packed, Null, Index_type, Comment, Index_comment, Visible, Expression
'idx', '0', 'PRIMARY', '1', 'id', 'A', '0', NULL, NULL, '', 'BTREE', '', '', 'YES', NULL
'idx', '0', 'id', '1', 'id', 'A', '0', NULL, NULL, '', 'BTREE', '', '', 'YES', NULL
'idx', '1', 'name', '1', 'name', 'A', '0', NULL, NULL, 'YES', 'BTREE', '', '', 'YES', NULL
Me hace confundido que hay dos índices de nombre_tecla = PRIMARAY y nombre_tecla = "id", porque id
es la clave principal. ¿Cual es la diferencia entre ellos?
Barmar:
El id
índice proviene de la unique
opción para la id
columna. El PRIMARY
índice proviene de primary key (id)
.
Dado que una clave principal es siempre único, que no es necesario la unique
opción, y entonces no va a crear el índice adicional.