Recordemos que una llave primaria identifica un solo registro en una tabla.
Definimos una llave compuesta cuando ningún campo por sí solo cumple con la condición de ser llave.
Supongamos que existe una tabla para los vehiculos que entran a un estacionamiento de una playa cada día, la tabla contiene los campos: placa, tipo, horadellegada y horadesalida.
Si necesitaramos definir una llave para la tabla vehiculos. No podemos usar solamente la placa, pues un mismo auto puede ingresar más de una vez al día al estacionamiento, tampoco podemos utilizar la hora de entrada, ya que varios vehiculos pueden ingresar a la misma hora.
Como ningún campo cumple con la condición para ser llave, es decir, para identificar un solo registro debemos usar dos campos
Usaremos dos campos como llave, la placa y la hora de llegada, de ésta forma identificaremos cada registro. Esto lo haremos de la siguiente forma:
create table vehiculos(
placa char(6) not null;
tipo char(1); ---'a'=auto, 'm'=moto
horallegada datetime;
horasalida datetime;
primary key(placa,horallegada)
);