问题描述
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'
因为别名有空字符串和大写字母,你需要在“”中包含