pgAdmin III 的错误行为?

2023-12-09

我在 pgAdmin 上进行查询时偶然发现了这种奇怪的行为。
我已连接到运行 PostgreSQL 9.1.9 的服务器。
我有一个名为 messages 的表,其定义如下:

ghareh@godot:~$ psql
psql (9.1.9)
Type "help" for help.

ghareh=# \d messages
                            Table "public.messages"
    Column     |            Type             |            Modifiers            
---------------+-----------------------------+---------------------------------
 messageid     | character varying(200)      | not null
 senderaliasid | integer                     | not null
 referenceid   | character varying(200)      | default NULL::character varying
 recipaliasid  | integer                     | 
 datetime      | timestamp(2) with time zone | not null
 subject       | character varying(512)      | not null
 body          | text                        | not null
 listid        | integer                     | 
Indexes:
    "messages_pkey" PRIMARY KEY, btree (messageid)
    "messages_datetime_idx" btree (datetime)
    "recipaliasid_idx" btree (recipaliasid)
    "referenceid_idx" btree (referenceid)
    "senderaliasid_idx" btree (senderaliasid)
Foreign-key constraints:
    "messages_listid_fkey" FOREIGN KEY (listid) REFERENCES lists(listid)
    "messages_recip_fkey" FOREIGN KEY (recipaliasid, listid) REFERENCES aliases(aliasid, listid)
    "messages_sender_fkey" FOREIGN KEY (senderaliasid, listid) REFERENCES aliases(aliasid, listid)
Referenced by:
    TABLE "messages_attachments" CONSTRAINT "pkfkmid" FOREIGN KEY (messageid) REFERENCES messages(messageid)

我的问题涉及专栏,body and subject.

我有一个查询生成了一组结果。然后,为了完善我的查询,我添加了以下术语:where body like '%JSON%'即 body 包含字符串“JSON”的结果子集。
我得到了一些包含这个词的结果,还有一些不包含这个词!但如果我搜索任意字符串,结果就可以了。我检查后发现查询不仅搜索正文列,还搜索主题列,这太疯狂了。

这是我最初的查询:

select * from messages where messageid = '[email protected]'

返回 1 行:

messageid: "[email protected]";
senderaliasid: 13777;
referenceid: "[email protected]";
recipaliasid: ;
datetime: "2006-07-17 20:53:35-07";
listid: 251;
subject: "Re: svn commit: r422930 - /incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/json/JSONWriter.java";
body: "busted! thanks for the thorough review.


-Elias

Garrett Rooney wrote:
> On 7/17/06, [email protected] <[email protected]> wrote:
>> Author: eliast
>> Date: Mon Jul 17 17:44:10 2006
>> New Revision: 422930
>>
>> URL: http://svn.apache.org/viewvc?rev=422930 (...)"

如果我搜索:

select * from messages
where messageid = '[email protected]'
and body like '%JSON%'

我不应该得到任何结果,因为体内没有。但我仍然得到相同的行返回 - 这似乎是因为“JSON”位于subject?

我什至尝试过这个:

select * from messages
where messageid = '[email protected]'
and body like '%incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/json/JSONWriter.java%'

我仍然得到同样的排。我很困惑。

我尝试在 sqlfiddle.com 上重现结果,但没有成功。在那里,我得到了 sql select 查询的预期结果:
http://sqlfiddle.com/#!1/ec74c/4


您无法在 SQL Fiddle 上重现相同的效果。

我在 Postgres 9.1.13 中重新创建了你的表(始终升级到最新版本!)并在 pgAdmin(当前版本 1.18.1)中运行查询。我无法重现该问题。

pgAdmin?

我不明白 pgAdmin 如何在其中发挥作用 - 除非您只选择了查询的一部分,没有意识到这种影响:
pgAdmin 执行脚本的快捷方式

或者您可能会被“每列最大字符数”设置所欺骗,该设置会截断显示中的长值,隐藏截断部分中的匹配项,例如@IMSoP 在他的评论中建议. Check File -> Options ...

pgAdmin option

如果不是这样,除非我们正在处理您问题中不存在的拼写错误或情况,否则这将表明您的数据库中存在某些问题。

腐败?

在索引损坏的简单情况下,REINDEX TABLE可能会解决这个问题:

REINDEX TABLE messages;

然而,仔细观察后,我没有看到可能是罪魁祸首的索引。

系统目录损坏?首先阅读此内容:
http://wiki.postgresql.org/wiki/Corruption

然后阅读注释部分REINDEX并从外壳运行:

$ export PGOPTIONS="-P"
$ psql broken_db
...
broken_db=> REINDEX DATABASE broken_db;
broken_db=> \q

损坏通常表明您的硬件存在问题。出现故障的磁盘或其他东西。跟进那个...

相关问题:
修复损坏的数据库 postgresql

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pgAdmin III 的错误行为? 的相关文章

  • 编写 MySQL 查询以获得所需结果

    我正在使用 MySQL 数据库 风险因素有四种类型 严重 高 中 低 表包含如下数据 id uaid attribute value time risk factor 1 1234 Edge Exist 16123 NONE 2 1234
  • Sql Server 2008 强制日期从 dd/MM/yyyy 到 MM/dd/yyyy

    我在 sql server 2008 上遇到了一个奇怪的问题 我试图用dd MM yyyy格式写入sql server 2008 但是插入日期后它会自动转换为MM dd yyyy 注意 我的电脑时钟格式是dd MM yyyy 我的报告查看器
  • 从表变量中获取列的明确名称

    我可以这样声明一个表变量 DECLARE tv source TABLE c1 int providerName varchar 50 providerSMS varchar 50 如果我执行以下命令 我会看到类似于以下内容的表名称 468
  • Postgresql:致命:角色不存在[重复]

    这个问题在这里已经有答案了 我正在设置 Postgresql 以与 Rails 应用程序一起使用 但我似乎无法连接到或正确配置数据库 启动 Rails 服务器后出现的错误是 ActiveRecord NoDatabaseError and
  • 使用 pyscopg2 和 PostgreSQL 将日期时间插入数据库

    我在使用 pyscopg2 的 insert 语句将日期时间戳插入 SQL 数据库时遇到问题 下面的代码所做的是每次按下按钮时 它都应该在数据库中插入一行 其中包含buildingID 只是文本 以及按下按钮时的日期和时间 我只是不知道如何
  • Heroku: PG::ConnectionBad: 无法连接到服务器: 连接被拒绝

    我尝试将新应用程序推送到 heroku 并出现此错误PG ConnectionBad could not connect to server Connection refused 这是我的 gemfile 与此有关系吗 我正在使用 spre
  • 在 PostgreSQL 中向日期添加月份显示语法错误

    我使用的是Postgres 9 0版本 我想在日期中添加一些月份来计算新日期并在表中更新 这里要添加的月份数将是整数变量 我的代码如下 declare numberofmonths smallint 5 update salereg1 se
  • 根据多列删除重复记录

    在我们的系统中 我们每小时从外部数据库进行导入 由于导入脚本中存在错误 现在存在一些重复记录 如果任何记录具有相同的内容 则视为重复 legacy id and company 我可以运行什么代码来查找并删除这些重复项 我正在玩这个 Pro
  • 在 VBScript 中的 SQL 字符串中使用 Excel 命名范围

    我已经在这里和谷歌上搜索过 但仍然无法解决我的问题 我正在尝试在我的中等效地使用 Excel 的命名范围 vbs文件 下面的代码可以在 excel 中的 VBA 中运行 但我无法让它在 vbs file ThisWorkbook Sheet
  • 在一个命令中选择或插入一行

    我使用的是 PostgreSQL 9 0 我有一个表 其中只有一个人工键 自动递增序列 和另一个唯一键 是的 这个表是有原因的 我想通过另一个键查找 ID 或者如果它不存在 则插入它 SELECT id FROM mytable WHERE
  • 将多对多关系中的所有相关记录分组,SQL 图形连接组件

    希望我错过了一个简单的解决方案 我有两张桌子 其中包含一份公司列表 第二个包含出版商列表 两者之间的映射是多对多的 我想要做的是将表 A 中与表 B 中的发布商有任何关系的所有公司捆绑或分组 反之亦然 最终结果看起来像这样 GROUPID
  • SQL 中WITH 子句的使用指南

    我了解如何使用WITH递归查询子句 但我在理解它的一般用途 功能时遇到问题 例如 以下查询更新一条记录 其 id 是通过使用按时间戳返回第一条记录 id 的子查询来确定的 update global prospect psp set sta
  • 有什么方法可以使用 LISTEN 和 NOTIFY (或 Node JS)实时监控 Postgresql 查询变化?

    所以我有一个自定义的 Postgresql 查询 它检索指定经度纬度半径内的所有行 如下所示 SELECT earth distance ll to earth 1 2 ll to earth lat lng as distance met
  • 按日期和时间降序排序?

    全部 我想显示特定 id 最后输入的 5 条数据 我的sql查询是 SELECT id name form id DATE updated at as date FROM wp frm items WHERE user id 11 form
  • 导出数据库的 CREATE 脚本

    假设我已经在 pgAdmin 中创建了一个数据库 但我想导出一个 CREATE sql 文件 我将如何生成转储 以下是如何使用 pgAdmin 创建一个架构脚本 该脚本可以与 PostgreSql 数据库架构比较工具 例如apgdiff h
  • 将 SQL 查询的 SELECT 子句解析为 PHP 数组

    这更多的是用于分析 PHP 中的查询before它被发送到服务器 我这样做的原因非常复杂 所以我不想深究其原因 在 PHP 中 我需要将字段选择存储到 PHP 数组中 以这个查询为例 SELECT user id username DATE
  • Android 和 Azure 移动服务:使用 invokeAPI 返回记录集

    我正在尝试一些非常简单的事情 我有一个名为 missingvehiclesfrominventoryjob 的自定义 API 它只是从标准 SQL 查询返回记录集 我可以在我的 WinForms 和 Windows Phone 应用程序中轻
  • UNION SELECT - 循环?还是单个查询?

    如果我使用 UNION 从数据库中进行多个 SELECT 是否被视为一个查询 或多个查询 SELECT column name s FROM table1 UNION SELECT column name s FROM table2 这是否
  • 依靠条件连接大表的速度很慢

    当表很小时 这个查询有合理的时间 我试图找出瓶颈是什么 但我不知道如何分析EXPLAIN结果 SELECT COUNT FROM performance analyses INNER JOIN total sales ON total sa
  • 是否可以暂时禁用 Postgres 中的索引?

    我在一张表上有一个索引 我想暂时禁用它 但我找不到任何表明这是可能的文档 原因 我有一个索引 它可能会导致与它旨在加速的任何查询无关的查询问题 这是一个新的索引 自从引入以来 整个系统似乎速度较慢 我只是希望能够可靠地消除它作为罪魁祸首 这

随机推荐

  • 重定向到 Amazon S3 静态网站中的错误页面

    我有一个存储桶并在其中启用了静态网站托管 假设我的存储桶中只有两个文件 index html 和 error html 如果使用 test html 命中请求 则会抛出访问被拒绝或不会抛出此类关键错误 如果出现此类错误 如何重定向到 err
  • 使用保留字作为属性名称,重新审视

    保留字可以用作对象的属性名称吗 这个问题是在之前的 Stack Overflow 问题中间接提出的 浏览器支持在 JavaScript 中使用保留字作为属性名称 答案似乎是普遍共识亚历克斯 韦恩 您可以使用这些单词 但只能作为字符串而不是速
  • 未来不完整?

    object Executor extends App implicit val system ActorSystem implicit val materializer ActorMaterializer implicit val ec
  • RDD 转换和操作只能由驱动程序调用

    Error org apache spark SparkException RDD 转换和操作只能由驱动程序调用 不能在其他转换内部调用 例如 rdd1 map x gt rdd2 values count x 无效 因为值转换和计数操作无
  • TFS 排除目录 - .tfignore 不起作用,它是一个非常大的目录

    我看过其他帖子并在 stackoverflow 上阅读它们 如何忽略 TFS 中的文件 目录以避免它们进入中央源存储库 然而这似乎不起作用 我有一个名为 FS 的根文件夹 在该目录中我有以下 tfignore This tfignore f
  • Oracle 10g 按日期选择查询没有返回结果

    我有一些令人困惑的问题 SQL gt select login status date modified from users where login zack 661 and date modified 05 MAR 14 no rows
  • Javascript stringify '%%' 丢失百分号

    为什么 stringify 的输出缺少百分号 var a dp var t JSON stringify a console log t t 结果是 t dp 为什么没有结果 t dp Thanks 正如文档中所指定的console log
  • 导入错误:“没有名为模块”*确实*存在[重复]

    这个问题在这里已经有答案了 当我启动金字塔保存时 我得到这个堆栈跟踪 python which pserve etc development ini Traceback most recent call last File home hug
  • 如何从 api 获取整个 Facebook 好友列表

    有没有办法使用 api 获取整个 Facebook 好友列表 我尝试了很多事情 这是我的镜头 FacebookClient f new FacebookClient access token f IsSecureConnection tru
  • 使用扩展方法表示的嵌套“from”LINQ 查询

    如何使用扩展方法语法编写此 LINQ 查询 var query from a in sequenceA from b in sequenceB select 为了供您将来参考 此表格的所有问题均由 C 规范第 7 16 节解答 本段回答了您
  • IntelliJ IDEA 终端特殊字符

    我最近开始在 Windows 10 上使用 IntelliJ IDEA Ultimate 并且非常想使用集成终端 但是 我无法让它与特殊字符 例如德语元音变音或 等 一起使用 如果我没有一些以 开头的文件夹 我无法重命名这些文件夹 那不会是
  • 移除边框后,边距超出 div 范围

    源于我网站上边框和边距的实际问题 我制作了这个测试示例 我认为它有点奇怪
  • 如何在Java中拥有多重地图功能?

    我想要具有以下功能MultiMap在 Java 中 提供与 cpp MultiMap 相同的功能 以便我能够拥有多个具有相同值的键 容器中的多个元素可以具有相同的键 我认为这会起作用 TreeMap
  • 从列表值动态创建匿名对象c#

    我有一个字符串列表 或者可以是数组 我想从中动态创建匿名对象 我该怎么做呢 var dataSet new DataSet dataSet ReadXml var dataTable dataSet Tables 0 var dataRow
  • Javascript 可以检测嵌入的 Youtube 视频何时结束吗?

    我有一个包含视频的 div div 的背景有一个假的 播放 按钮 我将其设计为用作播放按钮 而不是 Youtube 的标准视频 播放 按钮 视频最初设置为 display none 我部署了下面的代码 以便当您单击 div 时 div 消失
  • 蒙特卡洛圆周率计算可以用来创造世界纪录吗?

    我有这个随机函数来计算 pi蒙特卡罗风格 max 10000000 format long in 0 tic for k 1 max x rand y rand if sqrt x 2 y 2 lt 1 in in 1 end end to
  • 以编程方式更改 Windows 电源设置

    是否可以更改笔记本电脑合上盖子时的省电行为休眠 待机 关机 to 没做什么来自 NET 框架 Edit 看来 通过将值设置为 待机 并阻止我的应用程序的待机 可以检测到盖子关闭事件 这正是我真正想要的 I found 这个问题它涉及检测盖子
  • 重新启动自己 - 我可以从头开始重新初始化一切吗?

    我有这样的事情 public static final String path static path loadProperties config conf getProperty path public static void main
  • AnyLogic Attractor 奇怪的行为

    我的理解是 节点内的吸引子的容量应该为 1 从某种意义上说 在 3D 动画中 每个吸引子应该只有一个代理 当我运行模型时 我看到同一个吸引子上有两个代理形状 而其他吸引子是空的 这是正常行为吗 有没有办法防止这种情况发生 请注意 这种情况并
  • pgAdmin III 的错误行为?

    我在 pgAdmin 上进行查询时偶然发现了这种奇怪的行为 我已连接到运行 PostgreSQL 9 1 9 的服务器 我有一个名为 messages 的表 其定义如下 ghareh godot psql psql 9 1 9 Type h