【问题标题】:Can't create unique constraint in Neo4J无法在 Neo4J 中创建唯一约束
【发布时间】:2021-02-25 18:08:05
【问题描述】:

我正在尝试创建这样的约束:

CREATE CONSTRAINT ON (a:forecast) ASSERT a.match IS UNIQUE

但我收到此错误:

无法创建约束(name='constraint_9615361a', type='UNIQUENESS', schema=(:forecast {match}) ):

我有 Neo4J 社区版 4.2.3,但从文档来看,我应该被允许创建这种类型的约束。什么给了?

【问题讨论】:

  • 这就是错误的全部吗?通常当无法应用唯一约束时,它会提及找到的节点具有相同的属性值。
  • 这就是错误的全部内容。我可以用虚构的东西替换“预测”,它仍然会给出同样的错误
  • 检查您的调试日志是否有任何有用的信息。无法创建约束的一个可能原因可能是某些目录或文件(可能是您的索引或架构目录)的权限或所有权问题。

标签: neo4j cypher


【解决方案1】:

您可以通过运行此命令检查预测 {match} 上是否存在唯一性。

MATCH (a:forecast) 
RETURN a.match, count(*) LIMIT 5

如果您在 count() 中看到 > 1 的值,则 forecast.match 不是唯一的。

注意:count() 在我的桌面上按降序排序。如果不是,则在下面运行:

MATCH (a:forecast) 
WITH a.match as match, count(*) as cnt
RETURN match, cnt ORDER by cnt DESC LIMIT 5

【讨论】:

    【解决方案2】:

    回复晚了,但还是。

    我现在遇到了同样的错误(4.4.3),它是驱动器上的可用空间不足。

    浪费了半个小时,在绝对错误的方向上挖掘。 我使用 --skip-duplicate-nodes=true 标志创建数据库,所以当然不能有任何重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多