Синтаксис создания ограничения внешнего ключа в PostgreSQL следующий:
Метод 1: определение встроенного ограничения внешнего ключа
CREATE TABLE table1 (
id SERIAL PRIMARY KEY,
column1 INTEGER,
column2 VARCHAR(50),
CONSTRAINT fk_constraint_name FOREIGN KEY (column1) REFERENCES table2 (column_id)
);
Метод 2. Отдельное определение ограничения внешнего ключа
CREATE TABLE table1 (
id SERIAL PRIMARY KEY,
column1 INTEGER,
column2 VARCHAR(50),
CONSTRAINT fk_constraint_name FOREIGN KEY (column1) REFERENCES table2 (column_id)
);
ALTER TABLE table1
ADD CONSTRAINT fk_constraint_name FOREIGN KEY (column1) REFERENCES table2 (column_id);
Метод 3. Определение ограничений внешнего ключа после создания таблицы
CREATE TABLE table1 (
id SERIAL PRIMARY KEY,
column1 INTEGER,
column2 VARCHAR(50)
);
ALTER TABLE table1
ADD CONSTRAINT fk_constraint_name FOREIGN KEY (column1) REFERENCES table2 (column_id);
В примерах выше:
table1– это таблица, которая будет иметь ограничение внешнего ключа.id— столбец первичного ключа вtable1.column1— это столбец вtable1, который будет ссылаться наtable2.table2— таблица, на которую есть ссылка.column_id— это столбец, на который есть ссылка вtable2.