Orientdb-update-edge

提供:Dev Guides
移動先:案内検索

OrientDB-エッジの更新

*update edge* コマンドは、現在のデータベースのエッジレコードを更新するために使用されます。 これは、 *out* および *in* プロパティを更新する場合に、頂点とのグラフの一貫性を確認および維持することに加えて、実際の更新コマンドと同等です。

次の文は、Update Edge Commandの基本的な構文です。

UPDATE EDGE <edge>
   [SET|INCREMENT|ADD|REMOVE|PUT <field-name> = <field-value> [,]*]|[CONTENT|MERGE <JSON>]
   [RETURN <returning> [<returning-expression>]]
   [WHERE <conditions>]
   [LOCK default|record]
   [LIMIT <max-records>] [TIMEOUT <timeout>]

上記の構文のオプションに関する詳細を次に示します。

*<edge>* -更新するエッジを定義します。 クラスごとにエッジを更新する*クラス*、クラスタープレフィックスを使用してクラスターごとにエッジを更新する*クラスター*、またはレコードIDでエッジを更新する*レコードID *から選択できます。
*SET* -フィールドを指定された値に更新します。
*INCREMENT* -値で指定されたフィールドをインクリメントします。
*ADD* -フィールドのコレクションに追加するアイテムを定義します。
*REMOVE* -フィールドのコレクションから削除するアイテムを定義します。
*PUT* -マップフィールドに入力するエントリを定義します。
*RETURN* -更新の実行後に返す式を定義します。
*WHERE* -フィルタ条件を定義します。
*LOCK* -ロードと更新の間でレコードをロックする方法を定義します。
*LIMIT* -レコードの最大数を定義します。

エリアID = 001、および人名=クリシュナを持つアドレステーブルからデータを取得して、人クラスの「住所」という名前のエッジを更新する例を考えてみましょう。

orientdb> UPDATE EDGE address SET out = (SELECT FROM Address WHERE areaID = 001)
WHERE name = 'krishna'

上記のクエリが正常に実行されると、次の出力が得られます。

Updated edge '[address[#10:3][#11:3->#14:2]]' in 0.012000 sec(s)