- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
does not exist."的 Postgresql 仅出现在 Win 7 上-6ren"> does not exist."的 Postgresql 仅出现在 Win 7 上-在 .NET 3.5 中使用 Npgsql(2.0.11 和 2.0.11.94)DLL 使用 Postgresql 时,我遇到了一个非常奇怪的错误。 我创建了一个程序来运行这两个查询(这些查询直接从-6ren">
在 .NET 3.5 中使用 Npgsql(2.0.11 和 2.0.11.94)DLL 使用 Postgresql 时,我遇到了一个非常奇怪的错误。
我创建了一个程序来运行这两个查询(这些查询直接从程序输出中复制):
INSERT INTO "db_events" VALUES ('2','1','2','1', to_timestamp('2012/08/27 10:22:43', 'YYYY/MM/DD HH24:MI:SS'),'2012', '8', '27', '10', '22', '43', '35' );
INSERT INTO "db_events_counts" VALUES ('1','2', '0', '1', '0', '1' );
这个程序将在 Windows XP x86 上运行得很好,同时使用 postgres 8.4.12 和 9.0.9,并将数据输入到表中。
但是,当在 Windows 7 上运行完全相同的程序时,数据库的设置方式与 Windows XP 数据库相同,我遇到了错误:
ERROR: 42P01: relation "db_events" does not exist
我读到这个错误是因为 postgres 强制表名小写,这很好,因为它们已经是小写了。或者用引号创建的表必须用引号引用,这也很好,因为我使用的是引号。
在 Windows 7 数据库中,如果我将这两个查询复制并粘贴到 pgadmin 中,它们工作正常,没有错误,这让我相信它与 DLL 有关?
没有意义的是这个程序在我的 Windows XP 系统上运行没有错误,而在 Windows 7 上不断抛出这个错误。
我也尝试了一个简单的删除语句:
DELETE FROM "db_events"; DELETE FROM "db_events_counts";
但这也以同样的错误结束。
有什么我想念的吗?Npgsql 是否需要在与运行时相同的 Windows 环境中编译?或者在 Windows 7 和 Windows XP 之间有一些我没有得到的 postgres 的细微差别。
如能提供有关该主题的任何帮助或信息,我们将不胜感激。
由于有关连接的问题,这是我尝试过的:
Server=localhost;Port=5433;User Id=databaseuser;Password=databaseuser_123;Database=db123;
Server=127.0.0.1;Port=5433;User Id=databaseuser;Password=databaseuser_123;Database=db123;
Server=10.223.132.123;Port=5433;User Id=databaseuser;Password=databaseuser_123;Database=db123;
最后一个是本地机器的 IP 地址。
这是程序在 Win 7 上连接和断开服务器的简短日志:
//连接
2012-08-27 11:26:00 EST ERROR: relation "db_events" does not exist at character 13
2012-08-27 11:26:00 EST STATEMENT: DELETE FROM "db_events"; DELETE FROM "db_events_counts";
2012-08-27 12:52:29 EST ERROR: relation "db_events" does not exist at character 13
2012-08-27 12:52:29 EST STATEMENT: INSERT INTO "db_events" VALUES ('114','1','2','1', to_timestamp('2012/08/27 12:52:29', 'YYYY/MM/DD HH24:MI:SS'),'2012', '8', '27', '12', '52', '29', '35' );
//断开连接
2012-08-27 11:26:07 EST LOG: could not receive data from client: No connection could be made because the target machine actively refused it.
2012-08-27 11:26:07 EST LOG: unexpected EOF on client connection
最佳答案
这里看到的奇怪和不稳定的行为以及评论中的讨论表明系统目录(在 pg_catalog
架构中)可能已被直接修改 - 可能是对 REVOKE
的尝试一些权限。
这不是个好主意。系统目录实际上只能由专家修改。这是只有 super 用户帐户才能直接修改它们的原因之一,也是您不应在日常操作中使用 super 用户帐户的众多原因之一。
除非您确切地知道做了什么并且可以撤消它,否则我建议恢复到数据库的工作副本,就像您已知良好的 XP 机器上的副本一样。 GRANT
正在访问 public
在 pg_catalog
听起来很有帮助,但谁知道还做了什么。
如果这是我的数据库,我会选择 pg_dump
每个数据库和一个 pg_dumpall --globals-only
并将其恢复到备用数据库以确保它看起来完整。然后我会停止 Pg 并重新初始化数据库。不过,这在 Windows 上有点麻烦,因此您只需备份损坏的数据库就可以了,DROP
ping 它,重新创建它并将数据恢复到其中。
关于c# - 带有 Npgsql "relation <tablename> does not exist."的 Postgresql 仅出现在 Win 7 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135177/
我在 SQL 查询中使用了一个简单的 IF NOT EXISTS/WHERE NOT EXISTS 语句(我都尝试过),但我总是收到 mysql 错误,不知道为什么。尝试使用不同的引号,检查我的 My
我有 2 个表:tbl1 和 tbl2。我想从 tbl1 返回一行,其中包含以下列:col1、col2、col3、can_be_deleted 、有重要项目。这个想法是,can_be_deleted
如果您是 "t1".persona_1_id = 2,则预期结果应返回 persona_id = 4。 like --- id persona_1_id persona_2_id liked 1 2
我遇到了这个用于执行幂等插入的 github SQL 代码示例。完全按照我想要的方式工作。我不想使用 EXISTS,因为我觉得它有点困惑。可以使用联接对相同的操作进行编码吗? 下面是我在 github
public bool CheckTblExist(string TblName) { try { string cmTxt = "s
表1 Id Name DemoID 1 a 33 2 b 44 3 c 33 4 d 33 5 e 44 表2 Id DemoID IsT
我对 SQL 非常陌生。我想知道当我使用“IF EXISTS”或“IF NOT EXISTS”时会发生什么。例如:以下两个语句有什么区别: 语句 1:(存在) IF EXISTS( SELECT OR
我正在更新 exist-db 集合中的 XML 文件,我必须检查是否存在 id 以决定是否必须在我的文档中替换或插入某些内容。 我注意到随着文件的增长,查询执行时间显着恶化,我决定为我的文件添加一个索
我有一个正在尝试更新的数据库,但我不明白为什么会收到有关不存在的列的奇怪错误。当我使用“heroku pg:psql”访问数据库时,我完全可以看到该列。我找到了couple其他questions遇到类
我有一个这样的查询 SELECT ... FROM ... WHERE (SELECT EXISTS (SELECT...)) which did not return anything th
我有一个可以对数据库执行插入和更新的程序,我从 API 获取数据。这是我得到的示例数据: $uname = $get['userName']; $oname = $get['offerNa
我的批处理文件中有这个脚本 -- if not exist "%JAVA_HOME%" ( echo JAVA_HOME '%JAVA_HOME%' path doesn't exist) -
有没有办法让 Directory.Exists/File.Existssince 区分大小写 Directory.Exists(folderPath) 和 Directory.Exists(folde
考虑使用这两个表和以下查询: SELECT Product. * FROM Product WHERE EXISTS ( SELECT * FROM Codes
我正在使用 Subclipse 1.6.18 使用 Eclipse 3.72 (Indigo) 来处理 SVN 1.6 存储库。这一切都在 Ubuntu 下运行。 我有一个项目,在我更新我的 Ecli
我正在尝试使用 Terraform 配置 Azure 存储帐户和文件共享: resource "random_pet" "prefix" {} provider "azurerm" { versi
我有兴趣为需要使用 NOT EXISTS 的应用程序编写查询。子句来检查一行是否存在。 我正在使用 Sybase,但我想知道一般 SQL 中是否有一个示例,您可以在其中编写具有 NOT EXISTS
我正在尝试使用 Terraform 配置 Azure 存储帐户和文件共享: resource "random_pet" "prefix" {} provider "azurerm" { versi
下面是代码示例: CREATE TABLE #titles( title_id varchar(20), title varchar(80)
我曾经这样编写 EXISTS 检查: IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET
我是一名优秀的程序员,十分优秀!