gpt4 book ai didi

postgresql - RENAME(ing) 表后,我被迫使用带引号的标识符

转载 作者:行者123 更新时间:2023-11-29 14:11:46 25 4
gpt4 key购买 nike

在 Postgres 中重命名一个表后,我遇到了一个奇怪的行为:如果我在没有引号的情况下引用该表,它就不起作用。

例如:原始名称是 «devices»,在我将其更改为 «Devices» 后,以下 SELECT 中断:

SELECT * from Devices

但是这个

SELECT * from "Devices"

按预期工作。

有什么想法吗?

最佳答案

根据手册,identifiers are lower-cased unless quoted .

当您重命名它时,您执行了 RENAME TO "Devices",从而使名称大小写混合。您现在必须在所有地方以混合大小写引用它。

对于 PostgreSQL,所有这些都是 devices 表的名称:

  • 设备
  • 设备
  • 设备
  • 设备

但这些是具有混合大小写名称的单独表的名称:

  • “设备”
  • “设备”

这是根据 SQL 标准,除了 SQL 需要实现 UPPER CASE 未引用的名称,而 PostgreSQL 由于历史原因 lower case 而不是。

关于postgresql - RENAME(ing) 表后,我被迫使用带引号的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com