PRZYPADEK 1:
Jeśli musisz utworzyć klucz obcy podczas tworzenia nowej tabeli
CREATE TABLE table1(
id SERIAL PRIMARY KEY,
column1 varchar(n) NOT NULL,
table2_id SMALLINT REFERENCES table2(id)
);
Powyższe polecenia utworzą tabelę o nazwie „table1” i trzema kolumnami o nazwie „id” (klucz podstawowy), „column1”, „table2_id” (klucz obcy tabeli 1, który odwołuje się do kolumny id tabeli 2).
DATATYPE „serial” sprawi, że kolumna, która używa tego typu danych jako kolumna automatycznie wygenerowana, podczas wstawiania wartości do tabeli nie musisz wcale wspominać o tej kolumnie, lub możesz podać „default” bez cudzysłowów w miejscu wartości.
Kolumna klucza podstawowego jest zawsze dodawana do indeksu tabeli o wartości „tablename_pkey”.
Jeśli klucz obcy zostanie dodany w czasie tworzenia tabeli, OGRANICZENIE zostanie dodane ze wzorcem „(nazwa_tabeli_tabeli) _ (nazwa_obcięcia_domeny) _fkey”.
Dodając klucz obcy, musimy wprowadzić słowo kluczowe „ODNIESIENIA” obok nazwy kolumny, ponieważ chcemy powiedzieć postgresowi, że ta kolumna odwołuje się do tabeli, a następnie obok odniesień musimy podać tabelę w celach informacyjnych, aw nawiasach podać nazwa kolumny przywoływanej tabeli, zwykle klucze obce są podawane jako kolumny klucza podstawowego.
PRZYPADEK 2:
Jeśli chcesz mieć klucz obcy do istniejącej tabeli w istniejącej kolumnie
ALTER TABLE table1
ADD CONSTRAINT table1_table2_id_id_fkey
FOREIGN KEY (table2_id) REFERENCES table2(id);
UWAGA: nawiasy kwadratowe „()” po KLUCZU ZAGRANICZNYM i REFERENCJE tabela2 są obowiązkowe, w przeciwnym razie postgres zgłosi błąd.