ERROR: column of relation does not exist PostgreSQL ,Unable to run insert query
ERROR: column of relation does not exist PostgreSQL ,Unable to run insert query
您好,我正在尝试插入 table 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 是否对插入查询的第一种语法起作用的列名有限制?
编辑:
Checkout Girdon Linoff , as Frank Heikens 指出其他没有引号的列名称是小写。
Lower case column is the standard within PostgreSQL and also works without quotes
如果用双引号定义列,那么在引用列时一般需要用到:
insert into tester3 ("UN0", "UN1")
values ( 1, 'jishnu1');
我建议您从 CREATE TABLE
语句中的列名中删除双引号。
如果名称全部小写,则不需要双引号。
尝试在您的列名称中使用双引号
insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1');
我有关于 Qgis + POSTGRES DATA 数据库的故事
我尝试用 Navicate 的代码更新我的 table
UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi"."A_Lam_D310"."Nguon"='Lâm'
和错误:
SQL]UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi"."A_Lam_D310"."Nguon"='Lâm'
[Err] 错误:关系“A_Lam_D310”的列“MangLuoi”不存在
LINE 1: UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi"."A_Lam_D310"."...
现在我试试
UPDATE "MangLuoi"."A_Lam_D310" SET "Nguon"='Lâm'
IT 显示正常:))
通过消息:
时间:0.035s
受影响的行:29
感谢分享和回答。
您好,我正在尝试插入 table 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 是否对插入查询的第一种语法起作用的列名有限制?
编辑:
Checkout Girdon Linoff
Lower case column is the standard within PostgreSQL and also works without quotes
如果用双引号定义列,那么在引用列时一般需要用到:
insert into tester3 ("UN0", "UN1")
values ( 1, 'jishnu1');
我建议您从 CREATE TABLE
语句中的列名中删除双引号。
如果名称全部小写,则不需要双引号。
尝试在您的列名称中使用双引号
insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1');
我有关于 Qgis + POSTGRES DATA 数据库的故事 我尝试用 Navicate 的代码更新我的 table UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi"."A_Lam_D310"."Nguon"='Lâm' 和错误: SQL]UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi"."A_Lam_D310"."Nguon"='Lâm'
[Err] 错误:关系“A_Lam_D310”的列“MangLuoi”不存在 LINE 1: UPDATE "MangLuoi"."A_Lam_D310" SET "MangLuoi"."A_Lam_D310"."...
现在我试试 UPDATE "MangLuoi"."A_Lam_D310" SET "Nguon"='Lâm'
IT 显示正常:)) 通过消息: 时间:0.035s
受影响的行:29
感谢分享和回答。