@Adrian Cornish es correcta. Sin embargo, hay otra advertencia para descartar una clave principal existente. Si esa otra clave se utiliza como una clave externa en otra tabla, se producirá un error al intentar soltarla. En algunas versiones de MySQL el mensaje de error no había mal formado (a partir del 5.5.17, este mensaje de error sigue siendo
alter table parent drop column id;
ERROR 1025 (HY000): Error on rename of
'./test/#sql-a04_b' to './test/parent' (errno: 150).
Si desea eliminar una clave primaria que está siendo referenciado por otra tabla, tendrá que caer la clave externa en primer lugar que la otra mesa. usted puede recrear esa clave externa si todavía quiere que después de volver a crear la clave principal.
Además, al utilizar claves compuestas, el orden es importante. Estos
1) ALTER TABLE provider ADD PRIMARY KEY(person,place,thing);
and
2) ALTER TABLE provider ADD PRIMARY KEY(person,thing,place);
no son el la misma cosa. Ambos hacen cumplir la singularidad en ese conjunto de tres campos, sin embargo desde el punto de vista de la indexación existe una diferencia. Los campos están indexados de izquierda a derecha. Por ejemplo, considere las siguientes consultas:
A) SELECT person, place, thing FROM provider WHERE person = 'foo' AND thing = 'bar';
B) SELECT person, place, thing FROM provider WHERE person = 'foo' AND place = 'baz';
C) SELECT person, place, thing FROM provider WHERE person = 'foo' AND place = 'baz' AND thing = 'bar';
D) SELECT person, place, thing FROM provider WHERE place = 'baz' AND thing = 'bar';
B puede utilizar el índice de clave principal en ALTER declaración 1
A puede utilizar el índice de clave principal de instrucción ALTER 2
C puede utilizar cualquiera índice
D no se puede usar ninguno de los índices
A utiliza los dos primeros campos del índice 2 como índice parcial. A no puede usar el índice 1 porque no conoce la porción del lugar intermedio del índice. Sin embargo, aún podría ser capaz de usar un índice parcial solo en persona.
D no puede usar ninguno de los índices porque no conoce a nadie.
Consulte los documentos de mysql here para obtener más información.
Esto añade tres PKS únicos, o de uno pk compuesto. – David542
@ David542 No, no; solo puede tener 1 clave principal. –
@David: es una clave principal única compuesta de múltiples campos, también conocida como clave compuesta. –