Rumah >pangkalan data >tutorial mysql >Mengapa Pernyataan INSERT PostgreSQL Saya Gagal dengan 'lajur \'X\' tidak wujud'?

Mengapa Pernyataan INSERT PostgreSQL Saya Gagal dengan 'lajur \'X\' tidak wujud'?

Barbara Streisand
Barbara Streisandasal
2025-01-12 07:00:46366semak imbas

Why Does My PostgreSQL INSERT Statement Fail with

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!

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