首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >neo4j如何删除所有约束

neo4j如何删除所有约束
EN

Stack Overflow用户
提问于 2014-03-13 00:10:17
回答 8查看 12.1K关注 0票数 25

是否有删除所有约束的cypher命令?

我知道我可以去掉特定的约束。

DROP CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE

但是,我想在测试后清除所有约束作为teardown的一部分。在文档中找不到任何东西,但类似于:

DROP CONSTRAINT *

更新:我的测试设置。

编写一个小型的基于promise的nodejs cypher客户端。我想测试一下在应用程序代码中定义唯一索引。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-09-28 02:40:24

您可以通过对http://localhost:7474/db/data/schema/constraint/http://localhost:7474/db/data/schema/index的get请求获取所有索引和约束的列表。下面是我在Ruby中是如何做到这一点的,也许它会让你了解如何在Node中做同样的事情。

c.after(:all) do
  conn = Faraday.new(url: "http://localhost:7474")
  response = conn.get('/db/data/schema/constraint/')
  constraints = JSON.parse(response.body)
  constraints.each do |constraint|
    Neo4j::Session.query("DROP CONSTRAINT ON (label:`#{constraint['label']}`) ASSERT label.#{constraint['property_keys'].first} IS UNIQUE")
  end 

  response = conn.get('/db/data/schema/index/')
  indexes = JSON.parse(response.body)
  indexes.each do |index|
    Neo4j::Session.query("DROP INDEX ON :`#{index['label']}`(#{index['property_keys'].first})")
  end
end
票数 7
EN

Stack Overflow用户

发布于 2017-05-21 02:06:46

注使用APOC,您可以通过CALL apoc.schema.assert({}, {})删除所有索引和约束。

票数 36
EN

Stack Overflow用户

发布于 2017-11-04 03:28:36

下面是我如何在Python中做到这一点:

    s = connection.get_session()

    # Drop constraints / indices
    for constraint in s.run("CALL db.constraints"):
        s.run("DROP " + constraint[0])

感觉有点讨厌,我觉得约束应该是一个更好的支持。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22357379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档