Мой ответ основан на моих знаниях MS SQL - хотя я считаю, что тот же ответ верен и для стандартов ANSI, я не уверен на 100% ...
ДА - вы МОЖЕТЕ делать это, если у вас есть уникальное ограничение на столбец в вашей родительской таблице, которое вы хотите использовать в качестве столбца привязки для ключа.
Вы можете создать ограничение FOREIGN KEY как часть
определения таблицы при создании таблицы.
Если таблица уже существует, вы можете добавить
Ограничение FOREIGN KEY при условии, что
Ограничение FOREIGN KEY связано с существующим
Ограничения PRIMARY KEY или УНИКАЛЬНОЕ ограничение в
другой или тот же стол. Таблица может содержать
несколько ограничений FOREIGN KEY.
И как пример такого ключа ...
use tempdb
CREATE TABLE parent(
pk int identity primary key,
candidate_key int unique not null)
CREATE TABLE child(
pk int identity primary key,
join_key int references parent(candidate_key))
См. здесь для получения дополнительной информации.