Rumah >pangkalan data >tutorial mysql >Mengapa Pernyataan INSERT PostgreSQL Saya Gagal dengan 'lajur \'X\' tidak wujud'?
Ralat pangkalan data PostgreSQL: "Lajur 'X' tidak wujud"
Dalam kod PostgreSQL yang diberikan, cuba memasukkan data ke dalam jadual menghasilkan ralat:
Mesej ralat:
<code>psql:createConfigChangeLog.sql:11: ERROR: column "5837-2016-08-24_09-12-22" does not exist</code>
Sebab ralat:
Ralat ini berlaku kerana PostgreSQL mentafsir nilai lajur last_config_version
sebagai nama lajur dan bukannya rentetan literal. PostgreSQL memerlukan pemalar rentetan untuk disertakan dalam petikan tunggal.
Penyelesaian:
Untuk menyelesaikan masalah ini, rentetan literal lajur last_config_version
hendaklah disertakan dalam petikan tunggal:
<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>
Larikan petikan tunggal dalam data:
Sebagai alternatif, petikan tunggal dalam data boleh dilepaskan dengan menulis dua kali:
<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>
Sila ambil perhatian bahawa kaedah pertama menggunakan petikan tunggal dan melepaskan petikan tunggal dalaman, yang merupakan pendekatan yang lebih standard dan disyorkan. Kaedah kedua menggunakan petikan berganda, yang, semasa bekerja dalam beberapa kes, tidak begitu jelas dan mudah alih seperti kaedah pertama.
Atas ialah kandungan terperinci Mengapa Pernyataan INSERT PostgreSQL Saya Gagal dengan 'lajur \'X\' tidak wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!