PostgreSQL上的SQL查询:
insert into TOKEPOOLAMT (TOKEPOOLAMT.TOKEPOOLAMTID,TOKEPOOLAMT.TOKERULEID)
values (151, 176);
给出错误:
com.edb.util.PSQLException: ERROR: column "tokepoolamt" of relation "tokepoolamt" does not exist
可是:
insert into TOKEPOOLAMT (TOKEPOOLAMTID,TOKERULEID) values (151, 176);
工作正常。
有人可以解释为什么别名与insert语句中的列不起作用吗?
答案 0 :(得分:3)
这里没有涉及别名。您的错误是INSERT
命令的列列表中的列名不能是表限定的。 @pozs已经提供了手册in his comment中的拟合引用。
我不认为这是一个案例问题。我尝试了两种情况。
这是错过了重点。在Postgres中,标识符折叠为小写除非双引号。如果你在创建时双引号,你保留了一个区分大小写的拼写,并且需要对该对象的其余部分进行双引号 - 除非它是一个合法的小写名称,否则引用将不会差异。详细说明: