La sintaxis de una restricción de tipo 2 es muy
similar a la CONSTRAINT de una restricción
1 la diferencia es que ahora tenemos que indicar sobre qué columnas
queremos definir la restricción. Se utilizan obligatoriamente las
restricciones de tipo 2 cuando la restricción afecta a un grupo
de columnas o cuando queremos definir más de una CONSTRAINT
para una columna (sólo se puede definir una restricción1
en cada columna).
La cláusula PRIMARY KEY se
utiliza para definir la clave principal de
la tabla. Después de las palabras PRIMARY
KEY se indica entre paréntesis el nombre de la columna
o las columnas que forman la clave principal. Las columnas que forman
la clave principal no pueden contener valores nulos ni pueden haber valores
duplicados de la combinación de columnas, por ejemplo la tabla
pedidos de nuestros ejemplos tiene una clave principal formada por idfab
e idproducto, pues no pueden haber dos filas con la misma combinación
de idfab con idproducto (aci,0001 por ejemplo) pero sí pueden
haber dos filas con el valor aci en la columna idfab si
tienen valores diferentes en la columna idproducto, y pueden haber
dos filas con el mismo idproducto pero distinto idfab.
En una tabla no pueden haber
varias claves principales, por lo que no podemos indicar la
cláusula PRIMARY KEY más
de una vez, en caso contrario la sentencia da un error.
La cláusula UNIQUE sirve para
definir un índice único
sobre una columna o sobre una combinación de columnas. Un índice
único es un índice que no permite
valores duplicados. Si el índice es sobre varias columnas
no se puede repetir la misma combinación de valores en dos o más
filas. Se suele emplear para que el sistema compruebe el mismo que no
se añaden valores que ya existen.
La cláusula FOREIGN KEY sirve
para definir una clave foránea
sobre una columna o una combinación de columnas. Una clave foránea
es una columna o conjunto de columnas que contiene
un valor que hace referencia a una fila de otra tabla, en una
restricción 1 se puede definir con la cláusula REFERENCES.
Para definir una clave foránea en una restricción de tipo
2 debemos empezar por las palabras FOREIGN KEY
después indicamos entre paréntesis la/s columna/s que es
clave foránea, a continuación la palabra reservada REFERENCES
seguida del nombre de la tabla a la que hace referencia, opcionalmente
podemos indicar entre paréntesis el nombre de la/s columna/s donde
tiene que buscar el valor de referencia, por defecto coge la clave principal
de la tabla2, si el valor que tiene que buscar se encuentra en otra/s
columna/s de tabla2, entonces debemos escribir el nombre de esta/s columna/s
entre paréntesis, además sólo podemos utilizar una
columna (o combinación de columnas) que esté definida con
una restricción de UNIQUE,
de lo contrario la sentencia CREATE TABLE
nos dará un error.
Si necesitas repasar los conceptos
de integridad referencial pincha aquí
|