Rumah >pangkalan data >tutorial mysql >Mengapa Postgres mengembalikan 'lajur '5837-2016-08-24_09-12-22' tidak wujud, dan bagaimanakah saya boleh membetulkannya?
Menyelesaikan ralat PostgreSQL: "Lajur "5837-2016-08-24_09-12-22" tidak wujud"
Apabila menghadapi mesej ralat ini, adalah penting untuk ambil perhatian bahawa nama lajur hendaklah disertakan dalam petikan berganda, manakala pemalar rentetan perlu disertakan dalam petikan tunggal. Dalam kes ini, ralat berlaku kerana nilai "5837-2016-08-24_09-12-22" telah disalah anggap sebagai nama lajur dan bukannya literal rentetan.
Untuk menyelesaikan isu ini, anda boleh membetulkan pernyataan SQL seperti berikut:
<code class="language-sql">INSERT INTO config_change_log(last_config_version, is_done, change_description ) VALUES('5837-2016-08-24_09-12-22', false, '{ ''key'':''value''}');</code>
Dengan mengelilingi pemalar rentetan dengan petikan tunggal, ia akan dikenali dengan betul sebagai nilai dan bukannya nama lajur.
Sebagai alternatif, anda boleh melepaskan petikan tunggal dalam data anda dengan menggandakannya, seperti dalam contoh berikut:
<code class="language-sql">INSERT INTO config_change_log(last_config_version, is_done, change_description ) VALUES('5837-2016-08-24_09-12-22', false, '{ "key":"value"}');</code>
Pendekatan ini memastikan petikan tunggal dalam lajur change_description ditafsirkan sebagai sebahagian daripada nilai rentetan dan bukannya menyebabkan ralat sintaks.
Ingat, anda sentiasa disyorkan untuk menggunakan petikan tunggal untuk pemalar rentetan dan petikan berganda untuk nama lajur untuk mengelakkan kemungkinan konflik dan memastikan sintaks yang betul. Dengan melaksanakan pembetulan ini, anda sepatutnya berjaya memasukkan data ke dalam pangkalan data PostgreSQL anda tanpa menghadapi ralat "lajur tidak wujud".
Atas ialah kandungan terperinci Mengapa Postgres mengembalikan 'lajur '5837-2016-08-24_09-12-22' tidak wujud, dan bagaimanakah saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!