Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan SQL Saya Gagal dengan 'lajur ... tidak wujud' Kerana Sensitiviti Kes?

Mengapa Pertanyaan SQL Saya Gagal dengan 'lajur ... tidak wujud' Kerana Sensitiviti Kes?

Barbara Streisand
Lepaskan: 2025-01-13 06:08:42
asal
325 orang telah melayarinya

Why Does My SQL Query Fail with

PostgreSQL Case-Sensitivity dan Ralat Pertanyaan SQL: "lajur ... tidak wujud"

Melaksanakan gabungan SQL kadangkala boleh mengakibatkan ralat "kolum 'nama_lajur' tidak wujud" yang mengecewakan. Ini selalunya berpunca daripada ketidakpadanan sekiranya antara nama lajur dalam pertanyaan anda dan nama sensitif huruf besar yang sebenar yang ditakrifkan dalam skema pangkalan data. PostgreSQL, tidak seperti beberapa sistem pangkalan data lain, amat sensitif terhadap perkara ini.

Masalahnya:

Pertimbangkan pertanyaan yang gagal ini:

<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>
Salin selepas log masuk

Mesej ralat menghala ke lajur "FK_Numbers_id" yang tidak wujud dalam jadual main_sim.

Penyelesaian:

Lajur ada wujud, tetapi penggunaan huruf besar yang betul adalah penting. Sifat sensitif huruf besar PostgreSQL memerlukan padanan yang tepat. Pertanyaan yang diperbetulkan ialah:

<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>
Salin selepas log masuk

Mengapa Ini Berfungsi:

Melampirkan nama lajur "FK_Numbers_id" dalam petikan berganda memaksa PostgreSQL untuk merawatnya secara literal, tanpa mengira kes. Tanpa petikan, PostgreSQL mentafsir nama lajur mengikut peraturan kes lalainya, yang membawa kepada ralat. Menggunakan petikan berganda memastikan padanan tepat dengan definisi skema pangkalan data.

Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Gagal dengan 'lajur ... tidak wujud' Kerana Sensitiviti Kes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan