CASE1:
Jika Anda perlu membuat kunci asing saat membuat tabel baru
CREATE TABLE table1(
id SERIAL PRIMARY KEY,
column1 varchar(n) NOT NULL,
table2_id SMALLINT REFERENCES table2(id)
);
Perintah di atas akan membuat tabel dengan nama 'table1' dan tiga kolom bernama 'id' (kunci utama), 'kolom1', 'table2_id' (kunci asing dari table1 yang mereferensikan kolom id dari table2).
'Seri' DATATYPE akan membuat kolom yang menggunakan tipe data ini sebagai kolom yang dibuat secara otomatis, saat memasukkan nilai ke dalam tabel Anda tidak perlu menyebutkan kolom ini sama sekali, atau Anda dapat memberikan 'default' tanpa tanda kutip di tempat nilai.
Kolom kunci utama selalu ditambahkan ke indeks tabel dengan nilai 'tablename_pkey'.
Jika kunci asing ditambahkan pada waktu pembuatan tabel, CONSTRAINT ditambahkan dengan pola '(present_table_name) _ (foreign_key_id_name) _fkey'.
Ketika menambahkan kunci asing, kita harus memasukkan kata kunci 'REFERENSI' di sebelah nama kolom karena kita ingin memberi tahu postgres bahwa kolom ini mereferensikan sebuah tabel dan kemudian di samping referensi kita harus memberikan tabel untuk referensi dan dalam kurung memberikan nama kolom dari tabel yang direferensikan, biasanya kunci asing diberikan sebagai kolom kunci utama.
KASUS 2:
Jika Anda ingin kunci asing ke tabel yang ada di kolom yang ada
ALTER TABLE table1
ADD CONSTRAINT table1_table2_id_id_fkey
FOREIGN KEY (table2_id) REFERENCES table2(id);
CATATAN: tanda kurung '()' setelah KUNCI LUAR NEGERI dan REFERENSI tabel2 adalah wajib atau postgres lain akan menimbulkan kesalahan.