PostgreSQL执行INSERT插入语句时报错提示列不存在该如何解决?
报错根因
该报错由SQL语法中引号的规则差异导致:
- 标准SQL规范中,
双引号(")仅用于标识数据库对象标识符(表名、列名等),只有单引号(')可用于包裹字符串字面量。 - 你编写的插入语句用双引号包裹了
John、dqw1两个字符串值,数据库会将其解析为对同名列的引用,自然触发列不存在的报错。
修复方法
将插入值的双引号替换为单引号即可,修正后语句如下:
INSERT INTO signup (username, user_password) VALUES('John', 'dqw1');
补充说明:MySQL默认配置下支持双引号包裹字符串,但如果开启了
ANSI_QUOTESSQL模式,也会遵循标准SQL规则触发相同报错。
内容的提问来源于stack exchange,提问作者Sports Highlights
相关产品推荐
相关产品推荐

