Академический Документы
Профессиональный Документы
Культура Документы
$ createdb clima
Ahora acceda a la base de datos con psql y cree las tablas weather y cities , pero esta
vez especificando las claves primarias y foráneas para mantener la integridad
referencial de los datos:
clima=# CREATE TABLE cities (city varchar(80) primary key, location point);
clima=# CREATE TABLE weather (city varchar(80) references cities(city), temp_lo int,
temp_hi int, prcp real, date date);
En la tabla cities , se especificó la columna city como clave primaria (primary key) y
en la tabla weather la columna city como clave foránea (foreign key). Este es el cambio
que permitirá resolver el problema descrito arriba.
Pueble ahora la tabla cities con las ciudades que quiera. Por ejemplo:
clima=# INSERT INTO cities VALUES ('San Francisco', '(‐194.0, 53.0)');
Pueble también la tabla weather con registros referentes a cualquiera de las ciudades
que agregó en la tabla cities . Por ejemplo:
clima=# INSERT INTO weather (city, temp_lo, temp_hi, prcp, date) VALUES ('San
Francisco', 43, 57, 0.0, '1994‐11‐29');
Ahora intente agregar un registro incorrecto en la tabla weather (usando una ciudad
que no está registrada en la tabla cities ):
clima=# INSERT INTO weather VALUES ('Berkeley', 45, 53, 0.0, '1994‐11‐28');
ERROR: inserción o actualización en la tabla «weather» viola la llave foránea
«weather_city_fkey»
DETALLE: La llave (city)=(Berkeley) no está presente en la tabla «cities».