2015-02-11 89 views
0

SQL查詢PostgreSQL的:INSERT與別名不工作在PostgreSQL上

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); 

工作正常。

任何人都可以解釋爲什麼別名與插入語句列不工作?

+0

看起來像一個大寫和小寫的對象名稱的問題。你是如何創建表格和列的?建議:只能使用小寫字母。 – 2015-02-11 13:03:27

+0

我不認爲這是一個案件的問題。我試過兩種情況。第一個查詢不起作用,但第二個沒有別名正在工作。 – 2015-02-11 13:10:13

+1

'TOKEPOOLAMTID'不是別名,那是您的專欄名稱。你首先嚐試的是使用它的表名來限定你的列名(這不僅僅是一個簡單的列名,但仍然不是一個*別名*),但這根本不是必須的,實際上根本不支持。 – pozs 2015-02-11 13:19:27

回答

2

這裏沒有涉及別名。您的錯誤是INSERT命令的列列表中的列名稱不能進行表格限定。 @pozs已經提供手冊in his comment的報價。

I don't think it's an issue of case. I tried with both the cases.

這就錯過了一點。在Postgres中,標識符被摺疊爲小寫,除非雙引號。如果您在創建時雙引號,則您保留了區分大小寫的拼寫,並且需要爲該對象的其餘部分生成雙引號 - 除非它是一個合法的小寫名稱,否則引用不會使一個區別。詳細信息: