Módulo 00 · lección 6
La clave primaria: cómo distinguir las filas
En GadgetHub hay dos productos con el mismo nombre, Cotton T-Shirt, de proveedores distintos. ¿Cómo puede el fundador señalar UNO concreto sin confundirlos? Hace falta un identificador fiable.
El problema: nombres iguales
Un nombre no siempre es único: dos productos pueden llamarse igual. Entonces, ¿cómo señalas exactamente UNA fila? Necesitas un identificador único garantizado.
La clave primaria
Una clave primaria (PRIMARY KEY) es una columna que identifica de forma única cada fila. En products es id.
Es:
- única: no puede haber dos filas con el mismo
id; - no vacía:
idsiempre tiene valor (nuncaNULL; qué esNULLlo verás en la siguiente lección); - estable: una vez asignada, no se cambia.
Gracias al id puedes decir «el producto n.º 7» con total seguridad, aunque haya diez productos con el mismo nombre. Normalmente el id se asigna automáticamente: el propio SGBD reparte el siguiente número (el tipo SERIAL), así que no tienes que pensar en ello.
Compruébalo tú mismo
En el ejercicio hay una consulta que muestra id y name ordenados por id. Fíjate: dos productos se llaman Cotton T-Shirt, pero sus id son distintos, y es justo el id lo que los diferencia.
Resumen
- Una
PRIMARY KEY/ unidpermite encontrar cualquier fila sin ambigüedad, aunque los nombres se repitan. - Única, no
NULL, estable. - El
idsuele generarse automáticamente (SERIAL).