Учебник PostgreSQL 7.3.3
Всемирная группа разрабочиков PostgreSQL
Copyright © 1996-2002 by Всемирная Группа Разработчиков PostgreSQL
Перевёл с английского Виктор Вислобоков
3.3. Внешние ключи (Foreign Keys)
    Посмотрите на таблицы weather и
    cities из Chapter 2. На лицо следующая проблема: Вы хотите
    быть уверенными, что каждая из строк в таблице
    weather имеет соответствующую запись в
    таблице cities. Это называется
    обслуживанием ссылочной целостности ваших
    данных. В простейших СУБД вам потребовалось бы реализовать
    сперва просмотр таблицы cities, чтобы
    проверить существование нужной записи и только затем решить
    вставлять или отвергнуть вставку новых записей данных в таблицу
    weather. Такое решение создает некоторые
    проблемы и очень неудобно, так что
    PostgreSQL может сделать это для вас.
   
    Новое описание этих таблиц будет выглядеть так:
CREATE TABLE cities (
 	city     varchar(80) primary key,
	 location point
);
CREATE TABLE weather (
	city      varchar(80) references cities,
	temp_lo   int,
	temp_hi   int,
	prcp      real,
	date      date
);
    Теперь попытайтесь вставить неправильную запись:
INSERT INTO weather VALUES ('Berkeley', 45, 53, 0.0, '1994-11-28');
ERROR:  <unnamed> referential integrity violation - key referenced from weather not found in cities
   
    Поведение внешних ключей может быть прекрасно использовано вашим
    приложением. Мы не ограничиваемся только этим простым примером в
    данном учебнике, но отсылаем вас за подробностями к PostgreSQL User's Guide
    Правильное использование внешних ключей существенно увеличивает
    качество ваших приложений по работе с базами данных, так что мы
    очень рекомендуем вам научиться пользоваться ими.