Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan SQL Saya Gagal Kerana Nama Lajur Sensitif Huruf dalam PostgreSQL?

Mengapa Pertanyaan SQL Saya Gagal Kerana Nama Lajur Sensitif Huruf dalam PostgreSQL?

DDD
DDDasal
2025-01-13 06:54:44948semak imbas

Why Does My SQL Query Fail Due to Case-Sensitive Column Names in PostgreSQL?

Sensitiviti huruf besar bagi nama lajur dalam SQL

Pernyataan SQL berikut menyebabkan ralat disebabkan oleh ketidakpadanan huruf nama lajur.

Mesej ralat "lajur "FK_Numbers_id" tidak wujud" menunjukkan bahawa PostgreSQL tidak dapat mencari lajur yang ditentukan dalam jadual. Walau bagaimanapun, selepas menyemak skema jadual, lajur itu wujud, hanya dengan nama yang sedikit berbeza.

Dalam PostgreSQL, nama lajur adalah sensitif huruf besar-besaran. Ini bermakna "FK_Numbers_id" dan "fk_numbers_id" dianggap sebagai lajur yang berbeza. Walau bagaimanapun, skema jadual menunjukkan bahawa lajur itu wujud dan dinamakan "FK_Numbers_id".

Oleh itu, pernyataan SQL yang betul hendaklah:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>

Pernyataan SQL merujuk secara eksplisit nama lajur sensitif huruf besar-kecil dalam skema jadual dengan melampirkan nama lajur dalam petikan berganda. Ini menyelesaikan ralat dan membolehkan pertanyaan berjalan dengan jayanya.

Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Gagal Kerana Nama Lajur Sensitif Huruf dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn