gpt4 book ai didi

sql - Postgresql:表名/模式混淆

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

我在我的 postgresql 数据库的公共(public)模式中创建了一个表 Abc。根据文档 public 应该是默认模式。 search_path 按预期设置为 "$user",public。但以下失败:

select * from Abc

这个调用也失败了:

select * from public.Abc

两者都会产生一个错误,指出 relation ... does not exist。但是这个工作正常:

select * from public."Abc"

我是一名经验丰富的 T-SQL 开发人员,但对 postgresql 还是个新手。根据文档,应该可以在 postgresql 中使用“普通”SQL。但这在我的情况下不起作用。任何暗示我可能搞砸了什么!?

最佳答案

Postgresql 默认为小写字符,同时对列/表名称区分大小写:

select * from public.Abc 

实际上是:

select * from public.abc

那是因为你的表叫abc,所以找不到。

您可以通过引号覆盖此小写行为,因此“Abc”将作为 Abc 处理。

关于sql - Postgresql:表名/模式混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262795/

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