Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Masalah Sensitiviti Kes dengan Nama Jadual dan Lajur dalam PostgreSQL?
Mengendalikan Sensitiviti Kes dalam Nama Jadual dan Lajur PostgreSQL
Perlakuan PostgreSQL terhadap nama jadual dan lajur bergantung pada sama ada ia disebut. Pengecam yang tidak disebut (seperti myTable
) adalah tidak peka huruf besar-besaran, bermakna MyTable
, mytable
dan MYTABLE
semuanya merujuk kepada objek yang sama. Pengecam yang disebut (seperti "MyTable"
) adalah sensitif huruf besar.
Perbezaan ini sering menyebabkan masalah apabila memindahkan pangkalan data, terutamanya daripada sistem seperti MSSQL yang sensitiviti huruf mungkin dikendalikan secara berbeza. Sebagai contoh, jika jadual bernama STD_TYPE_CODES
diimport dan anda cuba menanyakannya sebagai std_type_codes
, anda akan mendapat ralat kerana PostgreSQL mentafsirkannya sebagai objek yang berbeza.
Penyelesaian:
<code class="language-sql">SELECT * FROM "STD_TYPE_CODES";</code>
Walau bagaimanapun, ini menyusahkan untuk banyak meja.
Penurunan Tersirat PostgreSQL: PostgreSQL secara automatik menukar pengecam yang tidak disebut kepada huruf kecil secara dalaman. Oleh itu, STD_TYPE_CODES
, std_type_codes
dan HeLLo
semuanya dianggap sebagai "std_type_codes"
.
Amalan Terbaik: Penamaan Konsisten: Untuk mengelakkan masalah pada masa hadapan, gunakan nama huruf kecil yang tidak dipetik secara konsisten semasa membuat jadual dan paparan baharu.
Menamakan Semula Jadual Sedia Ada: Untuk jadual sedia ada dengan selongsong yang tidak konsisten, gunakan ALTER TABLE
:
<code class="language-sql">ALTER TABLE "FOO" RENAME TO foo;</code>
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masalah Sensitiviti Kes dengan Nama Jadual dan Lajur dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!