2017-04-12 5 views
0

クエリを通して存在する場合にのみ制約を削除する方法はありますか?私はjavascript用のボルトドライバを使用しています。存在する場合のNeo4jドロップ制約

私が最初に私は、エラーをキャッチしますが、私が手にエラーが十分に明確ではないと思った:「

Unable to drop CONSTRAINT ... No such constraint CONSTRAINT 

しかし、私はドン:私は実際に取得したログで

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

ログをプログラムで開き、解析する必要があります。

制約が存在する場合のみ削除する方法はありますか?私は何か有用なものを見つけられませんでした。

私が考えることができる唯一のことは、制約(より明確なエラーを返す)と競合する2つのノードを最初に作成しようとしていることです。

+0

あなたは新しい制約を作成していますか? –

答えて

0

必要なすべてのインデックスと制約がわかっている場合は、apocプロシージャーapoc.schema.assertを使用してそれらが存在し、他のすべての既存の索引と制約が破棄されるようにすることができます。

この手順の使用例は、doc sectionの一部です。手順と結果の呼び出しを示す抜粋です:

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│ 
└────────────┴───────┴──────┴───────┘ 
関連する問題