【发布时间】:2015-09-13 08:18:57
【问题描述】:
您好,我正在尝试将 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 的答案,正如 Frank Heikens 指出的其他列名,这些列名在小写中没有引号。
小写列是 PostgreSQL 中的标准列,也可以不加引号
【问题讨论】:
-
您可以在此处找到有关标识符名称的详细信息:postgresql.org/docs/current/static/sql-syntax-lexical.html
-
对您的问题非常有用。 stackoverflow.com/questions/7651417/…
标签: sql postgresql sql-insert quoted-identifier