簡體   English   中英

PostgreSQL選擇查詢中的全限定表名

[英]Fully qualified table name in postgreSQL select query

簡單的問題,但是Google在合理的時間內無法提供幫助。 好的,我的my_db數據庫中的用戶表具有id列。 我想運行非常簡單的查詢

SELECT id FROM user;

但是失敗了。

錯誤:“ id”列不存在第1行:從用戶處選擇ID;

你可以想象?

好的,跑步

SELECT * FROM user;

輸出內部postgresql數據庫用戶列表,這與我的用戶無關,它完全來自另一個[內部]數據庫。 但是,已建立與my_db的連接。

以下查詢可以重寫為

SELECT id FROM my_db.public.user;

其中ID為列,MY_DB是數據庫, 用戶表名, 公共 -是架構。 有關模式的更多信息: http : //www.postgresql.org/docs/9.1/static/ddl-schemas.html因此,您不必重命名表名。

user是返回當前登錄用戶的內部函數(和保留字)。

要將其用作您自己的標識符,您需要引用它:

select id 
from "user" 

要么

select id 
from public."user". 

但是,您應該避免使用保留字作為表名(或任何需要引用標識符的名稱)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM