我在Abcpostgresql数据库的公共模式中创建了一个表.根据文档public应该是默认架构.search_path设置"$user",public为预期.但是以下失败了:
select * from Abc
Run Code Online (Sandbox Code Playgroud)
这个电话也失败了:
select * from public.Abc
Run Code Online (Sandbox Code Playgroud)
两者都产生错误说relation ... does not exist.但这个工作正常:
select * from public."Abc"
Run Code Online (Sandbox Code Playgroud)
我是一位经验丰富的T-SQL开发人员,但对postgresql很新.根据文档,应该可以使用postgresql的"普通"SQL.但它在我的情况下不起作用.什么暗示我可能搞砸了!?
Max*_*xem 10
Postgresql默认使用小写字符,而对列/表名称区分大小写:
select * from public.Abc
Run Code Online (Sandbox Code Playgroud)
实际上是:
select * from public.abc
Run Code Online (Sandbox Code Playgroud)
那是因为你的表叫做Abc,所以无法找到它.
您可以通过引号覆盖此小写行为,因此"Abc"将作为Abc处理.
这是正常的,对象名称(如表和列)不区分大小写,除非您将它们放在双引号之间".这是标准的SQL行为.
| 归档时间: |
|
| 查看次数: |
7882 次 |
| 最近记录: |