Postgresql 重命名(ing)表I';我被迫使用带引号的标识符
在Postgres中重命名一个表之后,我遇到了一个奇怪的行为:如果我引用的表没有引号,它就不起作用 例如:原始名称为«设备»,在我将其更改为«设备»后,以下选择中断:Postgresql 重命名(ing)表I';我被迫使用带引号的标识符,postgresql,rename,Postgresql,Rename,在Postgres中重命名一个表之后,我遇到了一个奇怪的行为:如果我引用的表没有引号,它就不起作用 例如:原始名称为«设备»,在我将其更改为«设备»后,以下选择中断: SELECT * from Devices 但是这个 SELECT * from "Devices" 一切正常 有什么想法吗?按照手册 当您重命名它时,您将重命名为“Devices”,从而使名称大小写混合。现在,您必须在引用的混合案例中到处引用它 对于PostgreSQL,所有这些都是设备表的名称: 设备 设备 设备 设备
SELECT * from Devices
但是这个
SELECT * from "Devices"
一切正常
有什么想法吗?按照手册
当您重命名它时,您将重命名为“Devices”
,从而使名称大小写混合。现在,您必须在引用的混合案例中到处引用它
对于PostgreSQL,所有这些都是设备
表的名称:
设备
设备
设备
设备
“设备”
“设备”
大写
未引用的名称,而PostgreSQL出于历史原因将其改为小写
。根据手册
当您重命名它时,您将重命名为“Devices”
,从而使名称大小写混合。现在,您必须在引用的混合案例中到处引用它
对于PostgreSQL,所有这些都是设备
表的名称:
设备
设备
设备
设备
“设备”
“设备”
这符合SQL标准,但SQL要求实现为
大写
无引号的名称,而PostgreSQL出于历史原因将其改为小写
。再次将其重命名为设备
(小写不带双引号)。然后,您可以在任何情况下引用它,包括混合情况:
select * from dEvIceS
再次将其重命名为
设备
(小写,不带双引号)。然后,您可以在任何情况下引用它,包括混合情况:
select * from dEvIceS