Contoh Create Table Foreign Key untuk PostgreSQL & SQL Agent

Implementasi Foreign Key pada perintah CREATE TABLE sangat esensial untuk menjaga integritas data antar-tabel dalam sistem manajemen basis data relasional seperti PostgreSQL. Berdasarkan dokumentasi pengelolaan database dan pengembangan agen SQL, pembuatan relasi memerlukan tabel referensi (Parent) dan tabel yang terikat (Child) dengan tipe data kunci yang harus persis sama.

Berikut adalah contoh sintaks SQL murni yang dapat langsung diterapkan pada database PostgreSQL (misalnya pada lingkungan CentOS 9) atau diintegrasikan ke dalam alur kerja agen SQL berbasis LangGraph dan Mistral Medium 3 menggunakan watsonx.ai.

Sintaks Dasar Create Table dengan Foreign Key

-- Membuat tabel induk (Parent Table)
CREATE TABLE kategori_produk (
    id SERIAL PRIMARY KEY,
    nama_kategori VARCHAR(100) NOT NULL
);

-- Membuat tabel anak (Child Table) dengan Foreign Key
CREATE TABLE produk (
    id SERIAL PRIMARY KEY,
    nama_produk VARCHAR(150) NOT NULL,
    harga NUMERIC(10, 2) NOT NULL,
    kategori_id INT,
    CONSTRAINT fk_kategori
        FOREIGN KEY (kategori_id)
        REFERENCES kategori_produk (id)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);

Penjelasan Komponen Perintah

Komponen SQL Fungsi dan Kegunaan
SERIAL / INT Menentukan tipe data unik. Kolom Foreign Key wajib memiliki tipe data yang identik dengan Primary Key tabel yang diacu.
CONSTRAINT fk_kategori Nama kendala (constraint) opsional untuk memudahkan identifikasi saat terjadi error atau saat melakukan modifikasi skema.
FOREIGN KEY (kategori_id) Menentukan kolom pada tabel saat ini yang akan bertindak sebagai penghubung.
REFERENCES kategori_produk (id) Menentukan tabel dan kolom tujuan yang menjadi acuan utama.
ON DELETE CASCADE Aturan otomatis yang akan menghapus data di tabel anak jika data di tabel induk dihapus.

Langkah Penerapan Teknis di PostgreSQL

  1. Pastikan server database PostgreSQL telah terinstal (misalnya pada sistem operasi CentOS 9).
  2. Akses antarmuka baris perintah menggunakan utilitas psql atau aplikasi klien database seperti DBeaver dan pgAdmin.
  3. Jalankan skrip pembuatan tabel induk terlebih dahulu agar kunci primer sudah tersedia sebelum tabel anak dibuat.
  4. Eksekusi skrip tabel anak untuk mengaktifkan relasi secara fisik.
  5. Uji integritas data dengan memasukkan data yang tidak memiliki pasangan di tabel induk untuk memastikan pembatasan (constraint) bekerja dengan baik.

Troubleshooting Kendala Umum

Kendala yang sering muncul saat membuat Foreign Key adalah kesalahan tipe data (misalnya kolom acuan bertipe BIGINT sedangkan kolom pengikut bertipe INT). Pastikan kedua kolom memiliki definisi tipe data yang sama persis. Selain itu, pastikan tabel referensi sudah dibuat sebelum mengeksekusi perintah CREATE TABLE untuk tabel yang memiliki relasi.