解决PostgreSQL错误:“列“5837-2016-08-24_09-12-22”不存在”
遇到此错误信息时,务必注意:列名应使用双引号括起来,而字符串常量则需要使用单引号。在本例中,错误发生是因为值“5837-2016-08-24_09-12-22”被误认为是列名而不是字符串字面量。
要解决此问题,您可以如下修正SQL语句:
<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>
这种方法确保了change_description列中的单引号被解释为字符串值的一部分,而不是导致语法错误。
记住,始终建议对字符串常量使用单引号,对列名使用双引号,以避免潜在冲突并确保正确的语法。通过实施这些更正,您应该能够成功地将数据插入到PostgreSQL数据库中,而不会遇到“列不存在”错误。
以上是为什么 Postgres 返回'列'5837-2016-08-24_09-12-22”不存在”,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!