首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL错误: 42P01:关系“[表]”不存在

PostgreSQL错误: 42P01:关系“[表]”不存在
EN

Stack Overflow用户
提问于 2014-10-29 13:08:27
回答 5查看 120.3K关注 0票数 25

使用PostgreSQL 9.3使用使用qoutes创建的表时,我遇到了一个奇怪的问题。例如,如果我使用qoutes创建一个表:

代码语言:javascript
运行
复制
create table "TEST" ("Col1" bigint);

表是正确创建的,我可以看到,当在pgAdminIII的SQL窗格中查看它时,引号将被保留。但是,当我查询DB以查找所有可用表的列表(使用下面的查询)时,我看到结果不包含表名周围的引号。

代码语言:javascript
运行
复制
select table_schema, table_name from information_schema.tables where not table_schema='pg_catalog' and not table_schema='information_schema';

因为表是用引号创建的,所以我不能直接使用从上面的查询返回的表名,因为它没有引用,并将错误抛出在标题中。

我可以尝试在所有查询中用引号包围表名,但我不确定它是否始终有效。我正在寻找一种获取表名列表的方法,这些表名在结果中引用引号。

对于列名,我也有同样的问题,但我希望如果我能够找到表名问题的解决方案,类似的解决方案也适用于列名。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-10-29 13:18:52

你有两个选择:-没有引号:那么所有东西都会自动地变成小写和不区分大小写的--带有引号:从现在开始,一切都是区分大小写的。

我强烈建议不要使用引号,并使PostgreSQL不区分大小写。这让生活变得容易多了。一旦您进入引用,您必须使用它在任何地方,因为PostgreSQL将开始非常精确。

一些例子:

代码语言:javascript
运行
复制
   TEST = test       <-- non case sensitive
   "Test" <> Test    <-- first is precise, second one is turned to lower case
   "Test" = "Test"   <-- will work
   "test" = TEST     <-- should work; but you are just lucky.

真的要不惜任何代价避免这种诡计。使用7位ascii获取对象名称。

票数 45
EN

Stack Overflow用户

发布于 2019-02-16 18:36:42

当使用npg包作为您的数据存储ORM时,您期望ORM框架(在本例中是实体框架)生成PostgreSQL语句,您可能会遇到一个异常--不存在“表名”关系

要么没有创建表,要么生成的SQL语句丢失了一些内容。尝试使用visual studio进行调试,您将看到架构名称不会导致表名。

代码语言:javascript
运行
复制
SELECT "ID", "Name", "CreatedBy", "CreatedDate" 
FROM "TestTable"; 

而PostgreSQL正在等待模式名称。解析在DBContext类中覆盖OnModelCreating方法,并添加modelBuilder.HasDefaultSchema("SchemaName");并执行基本构造函数,如下所示

代码语言:javascript
运行
复制
protected override void OnModelCreating(ModelBuilder modelBuilder)   {             
  modelBuilder.HasDefaultSchema("PartyDataManager");                  
  base.OnModelCreating(modelBuilder);         
}
票数 8
EN

Stack Overflow用户

发布于 2021-02-23 09:29:22

在我的案子里。数据库中的表必须是lowercase...change名称dataTable do datatable帮助

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26631205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档