Es una instrucción que permite conservar la integridad de
los datos, cuando se le indica a un campo de una tabla que es llave foránea, es
como si el campo de esa tabla “fuera una lista de valores” en la que solo se
pueden ingresar los valores que contiene otro campo en otra tabla, el campo de esa
tabla debe ser Primary Key.
Se puede crear el constraint de dos formas, utilizando la
instrucción Alter Table o al momento
de crear la tabla.
Creando
la tabla
|
CREATE TABLE CIUDAD (
CODIGO_CIUDAD NUMBER,
CODIGO_PAIS NUMBER,
NOMBRE_CIUDAD VARCHAR2(100),
CONSTRAINT FK_CIUDADPAIS FOREIGN KEY (CODIGO_PAIS)
REFERENCES
PAIS(CODIGO_PAIS)
);
|
Modificando
la tabla
|
ALTER TABLE CIUDAD ADD CONSTRAINT FK_CIUDADPAIS FOREIGN KEY(CODIGO_PAIS) REFERENCES
PAIS(CODIGO_PAIS);
|
Siempre que se quiera ingresar un valor en el campo llave
foránea, el valor debe de existir en el campo primary key de la otra tabla, de
no ser así generar un error “ORA-02291: integrity constraint (string.string) violated - parent key not found”.
Una tabla puede tener una o más llaves foráneas.
También se pueden crear llaves foráneas compuestas por dos o
más campos, la llave foránea compuesta solo es posible si la primary key de la
otra tabla también es una llave primaria compuesta.