2013-07-19 43 views
0

在Postgres中重命名錶後,我遇到了一個奇怪的行爲:如果我引用沒有引號的表,它不起作用。RENAME(ing)後,我不得不使用帶引號的標識符

例如:原來的名字叫«設備»,我已經改變了它«設備»以下SELECT休息後:

SELECT * from Devices 

但預計這一

SELECT * from "Devices" 

作品。

有什麼想法?

回答

4

本手冊,identifiers are lower-cased unless quoted

當你重命名它時,你做了一個RENAME TO "Devices",從而使名稱混合大小寫。現在您必須在任何地方以引用的混合格式引用它。

到PostgreSQL所有這些名字對於devices表:

  • devices
  • DEVICES
  • Devices
  • DeViCES

,但這些都是與混色不同的表名案例名稱:

  • "Devices"
  • "DEVICES"

這是根據不同的是SQL SQL標準要求實現UPPER CASE未引述名,其中PostgreSQL的歷史原因lower cases它們來代替。

0

將其重命名爲devices(不帶雙引號的小寫字母)。那麼你可以在任何情況下參考它,包括混合的情況下:

select * from dEvIceS 
相關問題