CASE1:
Якщо вам потрібно створити зовнішній ключ під час створення нової таблиці
CREATE TABLE table1(
id SERIAL PRIMARY KEY,
column1 varchar(n) NOT NULL,
table2_id SMALLINT REFERENCES table2(id)
);
Вищезазначені команди створять таблицю з ім'ям 'table1' та трьома стовпцями з назвою 'id' (Первинний ключ), 'column1', 'table2_id' (зовнішній ключ таблиці1, на який посилається стовпець таблиці table2).
ДАТАТИП "серійний" зробить стовпець, який використовує цей тип даних як стовпчик, що автоматично генерується, при вставці значень у таблицю взагалі не потрібно згадувати цей стовпець, або ви можете вказати "за замовчуванням" без лапок у значенні місця.
Стовпчик первинного ключа завжди додається до індексу таблиці зі значенням 'tablename_pkey'.
Якщо зовнішній ключ доданий під час створення таблиці, додається CONSTRAINT з шаблоном '(present_table_name) _ (Foreign_key_id_name) _fkey'.
Додаючи закордонний ключ, ми повинні ввести ключове слово "СПРАВКИ" поруч із назвою стовпця, оскільки ми хочемо повідомити постграфам, що цей стовпець посилається на таблицю, а потім поряд із посиланнями ми повинні дати таблицю для ознайомлення та в дужках дати Назва стовпця посилається на таблицю, як правило, сторонні ключі задаються як стовпці первинного ключа.
СЛУЧАЙ 2:
Якщо ви хочете отримати зовнішній ключ до існуючої таблиці в існуючому стовпці
ALTER TABLE table1
ADD CONSTRAINT table1_table2_id_id_fkey
FOREIGN KEY (table2_id) REFERENCES table2(id);
ПРИМІТКА: дужки "()" після ЗНОШЕНОГО КЛЮЧА та РЕФЕРЕНЦІЙ tabel2 є обов'язковими, інакше постгреси викличуть помилку.