在Postgres中重命名錶後,我遇到了一個奇怪的行爲:如果我引用沒有引號的表,它不起作用。RENAME(ing)後,我不得不使用帶引號的標識符
例如:原來的名字叫«設備»,我已經改變了它«設備»以下SELECT休息後:
SELECT * from Devices
但預計這一
SELECT * from "Devices"
作品。
有什麼想法?
在Postgres中重命名錶後,我遇到了一個奇怪的行爲:如果我引用沒有引號的表,它不起作用。RENAME(ing)後,我不得不使用帶引號的標識符
例如:原來的名字叫«設備»,我已經改變了它«設備»以下SELECT休息後:
SELECT * from Devices
但預計這一
SELECT * from "Devices"
作品。
有什麼想法?
本手冊,identifiers are lower-cased unless quoted。
當你重命名它時,你做了一個RENAME TO "Devices"
,從而使名稱混合大小寫。現在您必須在任何地方以引用的混合格式引用它。
到PostgreSQL所有這些名字對於devices
表:
devices
DEVICES
Devices
DeViCES
,但這些都是與混色不同的表名案例名稱:
"Devices"
"DEVICES"
這是根據不同的是SQL SQL標準要求實現UPPER CASE
未引述名,其中PostgreSQL的歷史原因lower cases
它們來代替。
將其重命名爲devices
(不帶雙引號的小寫字母)。那麼你可以在任何情況下參考它,包括混合的情況下:
select * from dEvIceS