- 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/
1) "select * from `union` WHERE `thanaId`='$thana_id'" // it's working VS2) "select * from union
我的 SQL Server 2005 数据库中的某些表被命名为 lu.[TableName] 而不是 dbo.[TableName]。卢代表什么? 注意:我已经试过谷歌了 最佳答案 这将是 SQL S
我是使用 typescript 的新手,我正在使用 typescript 和 postgres 开发 API NodeJS。 我正在使用 docker 到 postgres,并且我有以下 docker
这个问题在这里已经有了答案: 关闭 13 年前。 Possible Duplicates: Select * vs Specifying Column Names Which is faster/b
我正在用 PHP PDO 编写一个用户注册函数,我发现我的查询只有这样写才能正常运行: setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION
我正在使用 JPA,我需要将“tableName”设为一个变量。 在数据库中,我有很多表,我的代码需要访问我指定要读取的表。 @Entity @Table(name = "tableName") pu
我关注了这个YouTube tutorial首先尝试使用无服务器框架开发无服务器 rest api。它给出了 MissingRequiredParameter 的错误并将初始化的表名称设置为未定义。
这个问题在这里已经有了答案: MySQL: NULL vs "" (12 个答案) MySQL, better to insert NULL or empty string? (6 个答案) 关闭
我目前正在学习 hibernate,无法从 oracle 获取数据。非常感谢任何帮助。 请找到下面的配置文件、pojo类和main方法... hibernate .cfg.xml
我的应用程序中有一个 JDBCAppender,我想为其设置 main argument lookup 中的 tableName 参数。 。原因是我的数据库表可以选择有一个前缀,所以我从应用程序中的配
您好,我正在尝试创建一个通用方法来从数据库中读取数据。这是我目前所拥有的: private static void GetData(string tableName, string key, stri
我通过一个网站和 html 5 视频标签,在家里制作了一个供个人使用的“电影”数据库,我轻松完成了该数据库,它包括一个索引页,列出了数据库中的所有电影,然后单击一个会将您链接到一个页面,该页面将在 h
我的 table 有这个问题。我想删除它但不起作用 我尝试删除 de .ibd 文件,他们将一些 frm 文件重命名为与 te ibd 相同的名称来删除表,但不起作用 当我删除表,然后再次创建它时,它
我在Windows 2008服务器上使用MySQL 5.1版本。当我执行以下查询时: SELECT * FROM tablename; It is taking too much time for f
最近我将一个 MySQL 数据库从一台服务器复制到另一台服务器。同时我已经从 Master DB 中清除了许多行。所以一段时间后复制正确完成。我验证了两个数据库中的数据计数,它是相同的。 之后,我只是
我正在编写一个锁定表的 MySQL 查询: "LOCK TABLE table_1 WRITE" 之后我执行了一些函数,在其中一个函数中,我在另一个我没有锁定的表上执行另一个查询: "SELECT *
我正在编写一个锁定表的 MySQL 查询: "LOCK TABLE table_1 WRITE" 之后我执行了一些函数,在其中一个函数中,我在另一个我没有锁定的表上执行另一个查询: "SELECT *
我想创建数据库并使用 Entity Framework ,但是当我运行我的 wpf 项目时,出现此错误。 2 个表出现此错误。在这里,我的错误: using (var c = new RSPDbCon
最好的方法是什么? 尝试过这样的事情: public String FormatColumnName(String columnName) { String formatedColumnNam
我在网上找不到这个问题的答案(可能是因为google不喜欢特殊字符),这种形式的查询是什么意思? Select tableName.* FROM tableName 我会说这就像 Select * f
我是一名优秀的程序员,十分优秀!