【问题标题】:Orientdb where clause not returning the recordOrientdb where 子句不返回记录
【发布时间】:2014-09-03 21:26:24
【问题描述】:

我正在尝试使用 orientdb 数据库中的 id 字段获取记录,但它没有返回记录。

这是记录(它适用于简单的选择):

orientdb {baasbox}> select from _bb_order             

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+-----    ----+---------+---------+---------+---------+-------------
#   |@RID |price|_links|_allow|_audit|_author|verbatim|timestamp|audioLeng|orderURI |transcrip|_creation|id       |fileId   |feedbackI|status       

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------
0   |#22:1|0    |#11:9 |[1]   |#3:7  |k      |false   |false    |60       |TC0448...|         |2014-0...|249373...|8a9ca9...|0540df...|Order rece...

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------


1 item(s) found. Query executed in 0.003 sec(s).

当我从 _bb_order 模式中选择 id 时,我可以获得记录。

orientdb {baasbox}> select id from _bb_order

----+-----+------------------------------------
#   |@RID |id                                  

----+-----+------------------------------------
0   |#-2:1|24937309-9189-484d-b406-6302b2ce9b6f

----+-----+------------------------------------


1 item(s) found. Query executed in 0.003 sec(s).

但是,当我在“id”属性上使用 where 子句时,我无法恢复记录。

orientdb {baasbox}> select from _bb_order where id="24937309-9189-484d-b406-6302b2ce9b6f"    


0 item(s) found. Query executed in 0.001 sec(s).

当我使用一些其他属性(如 fileId)时,我可以获得记录。

orientdb {baasbox}> select from _bb_order where fileId="8a9ca9d2-bbe2-4326-aa2b-bad5f2032fbd"

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------
#   |@RID |price|_links|_allow|_audit|_author|verbatim|timestamp|audioLeng|orderURI |transcrip|_creation|fileId   |id       |feedbackI|status       

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------
0   |#22:1|0    |#11:9 |[1]   |#3:7  |k      |false   |false    |60       |TC0448...|         |2014-0...|8a9ca9...|249373...|0540df...|Order rece...

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------


1 item(s) found. Query executed in 0.002 sec(s).    

确认Id字段在代码中存储为String。

对为什么会发生这种情况有任何想法吗?

【问题讨论】:

  • 您对_bb_order.id 有任何索引吗?尝试:EXPLAIN select from _bb_order where id="24937309-9189-484d-b406-6302b2ce9b6f"
  • 这个数据库会损坏吗?就像几乎没有关机什么的。
  • @enisher:每次我需要删除数据库时,我都必须手动删除整个数据库。这是因为当我使用 drop database 命令然后创建新数据库时,在创建用户后登录时出现错误。我意识到这可能是一件坏事,但它确实解决了登录问题。
  • @riccardo.tasso:我不知道 _bb_order.id 上是否有任何索引。我尝试了“重建索引 *”,它奏效了。如果问题重复出现,我会在此处发布并尝试使用说明命令。

标签: sql database database-schema orientdb mbaas


【解决方案1】:

尝试使用以下命令重建索引:

REBUILD INDEX *

如果没有帮助,这可能是一个错误。在这种情况下,请在 github 上创建一个问题,并描述如何重现它。

【讨论】:

  • 像魔术一样工作! :) 我需要多久重建一次索引?我们每次都必须手动构建它还是有一个自动/数据库命令来完成它?
猜你喜欢
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多