微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL 无法向表中插入数据列不存在

如何解决PostgreSQL 无法向表中插入数据列不存在

Postgresql 13,pgAdmin 4。

我有一个包含以下列的“学生”表:

  • student_id(文本,主键)
  • 姓氏(文本)
  • 名字(文本)
  • 主要(文本)
  • credit_hours (int)

我只是想将另一个学生添加到此表中,我正在尝试使用下面的查询来完成

INSERT INTO Public."Student" ("student_id","last_name","first_name","major","credit_hours")
VALUES ("S201217","BAR","FOO","CSC",100);

但是当我运行这个查询时,我得到了这个输出

ERROR:  column "S201217" does not exist
LINE 2: VALUES ("S201217",100);
                ^
sql state: 42703
Character: 105

对于这样一个基本错误,我真的在这里遗漏了什么,为什么这个查询不能添加一行?

解决方法

双引号用于引用列。使用单引号代替双引号。

INSERT INTO Public."Student" ("student_id","last_name","first_name","major","credit_hours")
VALUES ('S201217','BAR','FOO','CSC',100);
,

DB 引擎认为这个 "S201217" 是列名,加上单引号就可以了

INSERT INTO Public."Student" (student_id,last_name,first_name,major,credit_hours)
VALUES ('S201217',100);

如果您使用它来命名此类具有大写字母的字符串,则您需要“”,例如,您的表,因为它以大写字母 S 开头,所以应该用双引号括起来,列名不需要它。或者例如,如果执行 select

Select now() as 'Time now'

因为别名有空字符串和大写字母,你需要在“”中包含

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。