W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在Neo4j數(shù)據(jù)庫中,CQL CREATE命令始終創(chuàng)建新的節(jié)點或關(guān)系,這意味著即使您使用相同的值,它也會插入一個新行。 根據(jù)我們對某些節(jié)點或關(guān)系的應(yīng)用需求,我們必須避免這種重復(fù)。 然后我們不能直接得到這個。 我們應(yīng)該使用一些數(shù)據(jù)庫約束來創(chuàng)建節(jié)點或關(guān)系的一個或多個屬性的規(guī)則。
像SQL一樣,Neo4j數(shù)據(jù)庫也支持對NODE或Relationship的屬性的UNIQUE約束
我們將在本章中用示例討論創(chuàng)建UNIQUE約束操作。
Neo4j CQL已提供“CREATE CONSTRAINT”命令,以在NODE或關(guān)系的屬性上創(chuàng)建唯一約束。
CREATE CONSTRAINT ON (<label_name>) ASSERT <property_name> IS UNIQUE
語法說明:
S.No. | 語法元素 | 描述 |
---|---|---|
1。 | CREATE CONSTRAINT ON | 它是一個Neo4j CQL關(guān)鍵字。 |
2。 | <label_name> | 它是節(jié)點或關(guān)系的標(biāo)簽名稱。 |
3。 | ASSERT | 它是一個Neo4j CQL關(guān)鍵字。 |
4。 | <property_name> | 它是節(jié)點或關(guān)系的屬性名稱。 |
5。 | IS UNIQUE | 它是一個Neo4j CQL關(guān)鍵字,通知Neo4j數(shù)據(jù)庫服務(wù)器創(chuàng)建一個唯一約束。 |
注意:-
上述語法描述了它的<PROPERTY_NAME> <LABEL_NAME>節(jié)點或關(guān)系創(chuàng)造了一個獨特的約束。
示例-
此示例演示如何在CreditCard節(jié)點的number屬性上創(chuàng)建UNIQUE約束。
注: -在這里我們將檢查兩種情況。
步驟1 -在數(shù)據(jù)瀏覽器中鍵入以下命令
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.name,cc.expiredate,cc.cvv
步驟2 -點擊執(zhí)行按鈕,觀察結(jié)果。
步驟3 -在數(shù)據(jù)瀏覽器中的dollar提示符下鍵入以下命令。
CREATE CONSTRAINT ON (cc:CreditCard) ASSERT cc.number IS UNIQUE
然后,如果我們嘗試在number屬性上創(chuàng)建UNIQUE約束,那么它會拋出錯誤,表示重復(fù)節(jié)點可用
首先,使用DELETE命令刪除重復(fù)記錄。 在數(shù)據(jù)瀏覽器上鍵入以下命令
MATCH (cc:CreditCard) WHERE cc.number = 222222 DELETE cc
步驟1 -在數(shù)據(jù)瀏覽器中的dollar提示符下鍵入以下命令。
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.name,cc.expiredate,cc.cvv
CREATE (cc:CreditCard {id:22,number:222222,name:'BBB' ,expiredate:'10/10/2017',cvv:222})
它創(chuàng)建一個節(jié)點,編號= 222222.現(xiàn)在我們執(zhí)行以下命令形式數(shù)據(jù)瀏覽器,以確認(rèn)我們的數(shù)據(jù)庫不包含重復(fù)節(jié)點的CreditCard
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.name,cc.expiredate,cc.cvv
CREATE CONSTRAINT ON (cc:CreditCard) ASSERT cc.number IS UNIQUE
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.name,cc.expiredate,cc.cvv
我們可以觀察到一個約束被添加到數(shù)據(jù)庫。
這里我們在CreditCard節(jié)點的number屬性上創(chuàng)建了一個UNIQUE約束。 因為根據(jù)我們的客戶要求,CreditCard號碼應(yīng)該是唯一的。
如果應(yīng)用程序嘗試插入重復(fù)的CreditCard號碼,Neo4j DB服務(wù)器將會拋出一個錯誤,表示數(shù)據(jù)庫中已存在相同的數(shù)字。
示例-
此示例演示如何檢查CreditCard節(jié)點的number屬性上的UNIQUE約束是否正常工作。
步驟1 -在數(shù)據(jù)瀏覽器中的dollar提示符下鍵入以下命令。
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.name,cc.expiredate,cc.cvv
步驟3 -在數(shù)據(jù)瀏覽器中的dollar提示符下鍵入以下命令。
CREATE (cc:CreditCard {id:22,number:222222,name:'BBB', expiredate:'10/10/2017',cvv:222})
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: