0

只有当它通过查询存在时,是否有任何方法可以删除约束?我正在使用 javascript 的螺栓驱动程序。

我最初以为我会抓住错误,但我得到的错误不够清楚:

{"code":"Neo.DatabaseError.Schema.ConstraintDropFailed"}
{ Error: An unexpected failure occurred, see details in the database logs, reference number .... }

在日志中我确实得到:

Unable to drop CONSTRAINT ... No such constraint CONSTRAINT

但我不想以编程方式打开日志并解析它。

只有当它存在时,有什么方法可以删除约束?我没有发现任何有用的东西。

我能想到的唯一一件事是首先尝试创建两个与约束冲突的节点(这会返回更清晰的错误),但我更喜欢更干净的东西。

4

1 回答 1

1

如果您知道所需的所有索引和约束,则可以使用 apoc 过程apoc.schema.assert使它们存在,并删除所有其他现有索引和约束。

如何使用此过程的示例是本文档部分的一部分。这是一个显示对过程和结果的调用的片段:

Let’s create some indexes and constraints, note that other indexes and constraints will be dropped by this.

CALL apoc.schema.assert(
  {Track:['title','length']},
  {Artist:['name'],Track:['id'],Genre:['name']});

╒════════════╤═══════╤══════╤═══════╕
│label       │key    │unique│action │
╞════════════╪═══════╪══════╪═══════╡
│Track       │title  │false │CREATED│
├────────────┼───────┼──────┼───────┤
│Track       │length │false │CREATED│
├────────────┼───────┼──────┼───────┤
│Artist      │name   │true  │CREATED│
├────────────┼───────┼──────┼───────┤
│Genre       │name   │true  │CREATED│
├────────────┼───────┼──────┼───────┤
│Track       │id     │true  │CREATED│
└────────────┴───────┴──────┴───────┘
于 2017-04-12T19:31:30.803 回答