Error & Pesan Kesalahan

SQL

Pesan error yang paling sering muncul saat menulis atau menjalankan query SQL, beserta penyebab dan cara menelusurinya.

Syntax Error

Arti

Muncul ketika struktur penulisan sebuah query tidak sesuai dengan aturan tata bahasa SQL, seperti tanda baca yang hilang atau kata kunci yang salah letak.

Penyebab Umum

Lupa menambahkan tanda kutip pada nilai teks, salah urutan klausa, atau tanda kurung yang tidak seimbang.

Cara Mengatasi

Periksa kembali query baris demi baris, khususnya bagian yang ditunjuk oleh pesan error, dan pastikan setiap tanda kutip serta tanda kurung memiliki pasangannya.

Column "nama_kolom" does not exist

Arti

Muncul ketika query merujuk pada nama kolom yang tidak ditemukan pada tabel yang dipakai.

Penyebab Umum

Kesalahan pengetikan nama kolom, atau kolom tersebut sebenarnya berada di tabel lain yang belum digabungkan melalui JOIN.

Cara Mengatasi

Periksa kembali ejaan nama kolom, dan pastikan tabel yang memuat kolom tersebut sudah benar dirujuk atau digabungkan dalam query.

Relation "nama_tabel" does not exist

Arti

Muncul ketika query merujuk pada nama tabel yang tidak ditemukan dalam database yang sedang diakses.

Penyebab Umum

Kesalahan pengetikan nama tabel, atau sedang terhubung ke database maupun skema yang salah.

Cara Mengatasi

Periksa kembali ejaan nama tabel, dan pastikan koneksi database sudah mengarah ke skema yang benar.

Column reference is ambiguous

Arti

Muncul ketika sebuah nama kolom yang dirujuk dalam query ternyata ada pada lebih dari satu tabel yang digabungkan, tanpa dijelaskan tabel mana yang dimaksud.

Penyebab Umum

Menggabungkan dua tabel yang memiliki nama kolom sama, seperti id_pelanggan, tanpa menuliskan awalan nama tabel di depan kolom tersebut.

Cara Mengatasi

Tambahkan nama tabel atau alias di depan nama kolom, misalnya pelanggan.id_pelanggan, agar SQL mengetahui kolom dari tabel mana yang dimaksud.

Kolom Harus Muncul di GROUP BY

Arti

Muncul ketika sebuah kolom dituliskan pada SELECT tanpa fungsi agregasi, namun tidak ikut dituliskan pada klausa GROUP BY.

Penyebab Umum

Menuliskan kolom tambahan pada SELECT setelah menggunakan GROUP BY, namun lupa menyertakan kolom tersebut ke dalam daftar GROUP BY.

Cara Mengatasi

Pastikan setiap kolom pada SELECT yang tidak dibungkus fungsi agregasi juga dituliskan pada klausa GROUP BY.

Division by Zero

Arti

Muncul ketika sebuah operasi dalam query mencoba membagi suatu nilai dengan angka nol.

Penyebab Umum

Menghitung rata-rata atau rasio pada kelompok data yang jumlah pembaginya kebetulan bernilai nol.

Cara Mengatasi

Gunakan fungsi kondisional seperti CASE WHEN atau NULLIF untuk menghindari pembagian dengan nol sebelum operasi dijalankan.

Data Type Mismatch

Arti

Muncul ketika sebuah operasi atau perbandingan dilakukan antara dua tipe data yang tidak sesuai, misalnya membandingkan teks dengan angka.

Penyebab Umum

Kolom yang seharusnya bertipe angka tersimpan sebagai teks, sehingga perbandingan atau perhitungan menjadi tidak valid.

Cara Mengatasi

Konversi tipe data kolom yang bermasalah menggunakan fungsi konversi tipe data yang sesuai sebelum dipakai dalam operasi.

Null Value Violates Not-Null Constraint

Arti

Muncul ketika mencoba memasukkan data baru dengan nilai kosong pada kolom yang diwajibkan selalu terisi.

Penyebab Umum

Data yang dimasukkan tidak menyertakan nilai untuk kolom yang sudah ditentukan sebagai wajib diisi saat tabel dibuat.

Cara Mengatasi

Pastikan data yang dimasukkan menyertakan nilai untuk seluruh kolom yang bersifat wajib.

Duplicate Key Violates Unique Constraint

Arti

Muncul ketika mencoba memasukkan data baru dengan nilai Primary Key yang sudah ada sebelumnya di tabel yang sama.

Penyebab Umum

Mencoba menambahkan baris data dengan identitas unik yang kebetulan sama dengan data yang sudah tersimpan.

Cara Mengatasi

Periksa kembali nilai Primary Key yang akan dimasukkan, pastikan benar-benar belum pernah dipakai sebelumnya pada tabel tersebut.

Cartesian Product (Hasil JOIN Meledak)

Arti

Bukan pesan error, melainkan kondisi ketika jumlah baris hasil query membengkak jauh melebihi ekspektasi, biasanya akibat JOIN tanpa klausa ON yang tepat atau relasi banyak-ke-banyak yang tidak disadari.

Penyebab Umum

Menuliskan JOIN tanpa kondisi penghubung yang benar, sehingga setiap baris tabel pertama dipasangkan dengan seluruh baris tabel kedua.

Cara Mengatasi

Periksa kembali klausa ON pada setiap JOIN, dan hitung ulang perkiraan jumlah baris yang wajar sebelum menjalankan query pada data berskala besar.

Query Timeout / Execution Exceeded

Arti

Muncul ketika sebuah query berjalan terlalu lama hingga melampaui batas waktu yang ditetapkan sistem, sehingga dihentikan secara paksa sebelum selesai.

Penyebab Umum

Query memproses tabel berukuran sangat besar tanpa filter yang memadai, atau terjadi JOIN yang menghasilkan Cartesian Product.

Cara Mengatasi

Tambahkan filter WHERE untuk mempersempit data yang diproses, periksa penggunaan index, atau gunakan EXPLAIN untuk menelusuri rencana eksekusi query.

Permission Denied for Relation

Arti

Muncul ketika pengguna yang menjalankan query tidak memiliki hak akses terhadap tabel yang dirujuk.

Penyebab Umum

Akun yang digunakan belum diberikan izin baca pada tabel atau skema tertentu oleh administrator database.

Cara Mengatasi

Hubungi administrator database untuk memastikan akun yang digunakan telah diberikan hak akses yang sesuai pada tabel yang dituju.