Claves Primarias Compuestas En MySQL
Las claves primarias pueden ser simples, formadas por un solo campo o compuestas, más de un campo.
Recordemos que una clave primaria identifica 1 solo registro en unatabla. Para un valor del campo clave existe solamente 1 registro. Los valores no se repiten ni pueden ser nulos.
Retomemos el ejemplo de la playa de estacionamiento que almacena cada día los datos delos vehículos que ingresan en la tabla llamada "vehiculos" con los siguientes campos:
- patente char(6) not null,
- tipo char (4),
- horallegada time not null,
- horasalida time,
Necesitamosdefinir una clave primaria para una tabla con los datos descriptos arriba. No podemos usar la patente porque un mismo auto puede ingresar más de una vez en el día a la playa; tampoco podemos usar la horade entrada porque varios autos pueden ingresar a una misma hora. Tampoco sirven los otros campos.
Como ningún campo, por si solo cumple con la condición para ser clave, es decir, debe identificar unsolo registro, el valor no puede repetirse, debemos usar 2 campos.
Definimos una clave compuesta cuando ningún campo por si solo cumple con la condición para ser clave.
En este ejemplo, un auto puedeingresar varias veces en un día a la playa, pero siempre será a distinta hora.
Usamos 2 campos como clave, la patente junto con la hora de llegada, así identificamos unívocamente cada registro.
Paraestablecer más de un campo como clave primaria usamos la siguiente sintaxis:
create table vehiculos(
patente char(6) not null,
tipo char(4),
horallegada time not null
horasalida time,
primarykey(patente,horallegada)
);
Nombramos los campos que formarán parte de la clave separados por comas.
Si vemos la estructura de la tabla con "describe" vemos que en la columna "key", en ambos camposaparece "PRI", porque ambos son clave primaria.
Un campo que es parte de una clave primaria puede ser autoincrementable sólo si es el primer campo que compone la clave, si es secundario no se...
Regístrate para leer el documento completo.