1
假設我在Cypher支架指定標籤Person
兩個唯一性約束:暗號MERGE有兩個唯一性約束
CREATE CONSTRAINT ON Person
ASSERT name IS UNIQUE
CREATE CONSTRAINT ON Person
ASSERT id_number IS UNIQUE
如果我運行下面的MERGE
命令
MERGE (p:Person {name:"Alice", id_number=153})
的行爲是:
- 如果有一個節點
name
Alice 和id_number
153,則返回 - 如果與
name
愛麗絲XORid_number
153的一個節點,有一個錯誤,因爲我們不能創建一個新的節點,並保持兩者唯一性約束 - 如果有節點既不是
name
Alice 也不是id_number
153,使用這些屬性創建新節點。
我想改變XOR行爲,讓我們做
- 如果與
name
愛麗絲或id_number
153的節點,則返回 - 如果有節點既不是
name
Alice 也不是id_number
153,使用這些屬性創建新節點。
任何想法如何在Cypher中實現這一點?