2014-07-09 5 views
3

Я воссоздал свою базу данных как вместо базы данных document, так как она представляет собой социальную сеть. Однако я не уверен, какая разница между вершиной и обычной записью. Я все еще могу использовать INSERT, что очень полезно из-за опции UPSERT, а опции CREATE VERTEX не имеют этой опции.В чем разница между INSERT и CREATE VERTEX в OrientDB?

Кроме того, мне интересно, действительно ли мне нужно использовать CREATE VERTEX, если будет доступно UPDATE VERTEX.

+2

Не могли бы вы создать запрос функции для реализации ** upsert ** для 'CREATE VERTEX' – enisher

ответ

4

Существует не так много различий между CREATE VERTEX и INSERT в реализации underling, но строго рекомендуется использовать CREATE VERTEX, потому что он может выполнить дополнительную проверку! а также всю конкретную операцию sql, такую ​​как DELETE VERTEX!

для UPSERT в СОЗДАТЬ VERTEX будет очень приятно представить запрос на выделение :)

+0

Что такое« дополнительная проверка »? – Garrett

+0

Целевой класс V или расширяет его – Lvca

+0

@Lvca Это необходимо? Потому что тогда «OUser», не являющийся «V», вызывает беспокойство. @tglman Я отправил запрос функции :) – Garrett

0

При использовании Pyorient 1.4.9 и 2.2.17 OrientDB,

Я обнаружил, что если у вас есть универсальный класс , вы можете вставлять новые записи только с помощью INSERT INTO MyGenericClass .... Если вы пытаетесь использовать CREATE VERTEX MyGenericClass ..., клиент пиориента зависает и становится невосприимчивым. Несмотря на то, что пиориент не реагирует, в нижней строке я бы сказал, что вы не можете вставить вершину в класс, который не наследует класс V.