PostgreSQL数据库错误:"列“X”不存在”
在给定的PostgreSQL代码中,尝试向表中插入数据导致错误:
错误信息:
<code>psql:createConfigChangeLog.sql:11: ERROR: column "5837-2016-08-24_09-12-22" does not exist</code>
错误原因:
该错误是因为PostgreSQL将last_config_version
列的值解释为列名而不是字面字符串。PostgreSQL要求字符串常量用单引号括起来。
解决方案:
为了解决这个问题,last_config_version
列的字面字符串应该用单引号括起来:
<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>
数据中单引号的转义:
或者,数据中的单引号可以通过双写来转义:
<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>
请注意,第一种方法使用单引号,并对内部单引号进行转义,是更标准和推荐的做法。 第二种方法使用双引号,虽然在某些情况下也能工作,但不如第一种方法清晰和可移植性强。
以上是为什么我的 PostgreSQL INSERT 语句失败并显示'列 \'X\' 不存在”?的详细内容。更多信息请关注PHP中文网其他相关文章!