如何使用两个字段创建约束。例如。
CREATE CONSTRAINT ON(m:BBG_Security_DATA)ASSERT m.ISIN,m.CUSIP IS UNIQUE;
当我执行上面的cypher语句时,它会给出一条错误消息。
谢谢, Shafeeque
答案 0 :(得分:1)
您可以使用APOC的triggers:
CREATE INDEX ON :BBG_Security_DATA (ISIN);
CREATE INDEX ON :BBG_Security_DATA (CUSIP);
CALL apoc.trigger.add(':BBG_Security_DATA (ISIN,CUSIP) IS UNIQUE', '
UNWIND {createdNodes} AS n
WITH n
WHERE ALL(l in ["BBG_Security_DATA"] WHERE l in LABELS(n)) AND
ALL(k in ["ISIN", "CUSIP"] WHERE k in keys(n))
MATCH (t:BBG_Security_DATA)
WHERE t<>n AND
ALL(k in ["ISIN", "CUSIP"] WHERE t[k] = n[k])
DETACH DELETE n
', {phase:'before'});
答案 1 :(得分:0)
目前Neo4j不支持此功能。但是,您可以编写自己的扩展程序(可能使用TransactionEventHandler)来强制执行此类行为。