错误:关系的列不存在PostgreSQL,无法运行插入查询

7nbnzgx9  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(3)|浏览(254)

你好,我正在尝试插入到表tester3中,当我使用语法时,它失败了

insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');

但是,

insert into tester3 values ( 1, 'jishnu1');

工作正常。

mydb=# CREATE TABLE tester3
mydb-#    (
mydb(#     "UN0" integer,
mydb(#     "UN1" VARCHAR(40)
mydb(#    );
CREATE TABLE
mydb=# insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');
ERROR:  column "un0" of relation "tester3" does not exist
mydb=# \d tester3
           Table "public.tester3"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 UN0    | integer               |
 UN1    | character varying(40) |

我想我遗漏了一些非常琐碎的东西,我尝试了一些其他的列名,其中一些工作正常,一些不工作。我很困惑。PostgreSQL是否对插入查询的第一个语法工作的列名有限制?

编辑:

在这里检查Girdon Linoff的answer,因为Frank Heikens指出其他不带引号的列名是小写
小写列是PostgreSQL中的标准列,也可以不使用引号

7fyelxc5

7fyelxc51#

如果使用双引号定义列,则在引用列时通常需要使用双引号:

insert into tester3 ("UN0", "UN1")
     values ( 1, 'jishnu1');

我建议您删除CREATE TABLE语句中列名的双引号。
如果名称全是小写,则不需要双引号。

yjghlzjz

yjghlzjz2#

请尝试在列名中使用双引号

insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1');
kuarbcqp

kuarbcqp3#

我有我的故事与我的数据库为Qgis + POSTGRES数据我尝试更新我的表与代码通过Navicate更新“MangLuoi”.“A_Lam_D310”设置“MangLuoi”.“A_Lam_D310”.“Nguon”='Lâm'和错误:SQL]更新“MangLoi”。“A_Lam_D310”设置“MangLoi”。“A_Lam_D310”。“Nguon”='Lâm“

[Err]错误:关系“A_Lam_D310”的列“MangLuoi”不存在行1:更新“芒罗”。“A_Lam_D310”设置“芒罗”。“A_Lam_D310”。...

现在我尝试更新“MangLuoi”。“A_Lam_D310”设置“Nguon”='Lâm'
IT show ok:))通过消息:时间:0.035秒
受影响的行:29
感谢您的分享和解答。

相关问题