概述
INSERT
语句通过路径模式向图中插入新的点和边。插入数据前,需先创建好需要的点、边Schema(标签)和属性。
示例图

以下示例基于这个图结构运行。创建带有此结构的图:
CREATE GRAPH myGraph {
NODE User ({name string, gender string}),
NODE Club (),
EDGE Follows ()-[{createdOn datetime}]->(),
EDGE Joins ()-[{memberNo uint32}]->()
} PARTITION BY HASH(Crc32) SHARDS [1]
插入点
使用点模式插入点:
- 必须为每个点指定标签,属性赋值可选。未赋值属性默认值为
null
。 - 点的
_id
值若未指定,将由系统自动生成;也可根据需要为其指定唯一值。 - 点的
_uuid
值由系统自动生成,不允许指定。
插入三个点,一个User
点(指定_id
和name
的值)和两个Club
点(一个指定_id
的值,另一个不指定任何属性值):
INSERT (:User {_id: "U01", name: 'Quasar92'}), (:Club)
插入一个点并返回该点信息:
INSERT (mochaeach:User {_id: "U02", name: 'mochaeach', gender: 'female'})
RETURN mochaeach
结果:mochaeach
_id | _uuid | schema | values |
---|---|---|---|
U02 | Sys-gen | User | {name: "mochaeach", gender: "female"} |
插入边
使用路径模式插入边,其中每个边模式两端都有点模式,且必须包含边方向以明确边的起点和终点:
- 必须为每条边指定标签,属性赋值可选。未赋值属性默认值为
null
。 - 边的
_uuid
值由系统自动生成,不允许指定。 - 边的
_from
、_to
、_from_uuid
和_to_uuid
值自动从指定的起点和终点获得,不允许指定。
插入边时,需要将边与图中已存在的点连接,或同时插入起点和终点。
同时插入起点、终点
插入三个User
点,并在它们中间插入两条Follows
边:

INSERT (:User {_id: 'U03', name: 'rowlock'})-[:Follows {createdOn: '2024-1-5'}]->(:User {_id: 'U04', name: 'Brainy', gender: 'male'})<-[:Follows {createdOn: '2024-2-1'}]-(:User {_id: 'U05', name: 'purplechalk', gender: 'female'})
连接到已存在的点
插入并返回一条Joins
边,它的起点和终点通过前置的MATCH
语句找到并与变量n1
和n2
绑定:

MATCH (n1:User {_id: 'U04'}), (n2:Club {_id: 'C01'})
INSERT (n1)-[e:Joins {memberNo: 1}]->(n2)
RETURN e
结果:e
_uuid |
_from |
_to |
_from_uuid |
_to_uuid |
schema |
values |
---|---|---|---|---|---|---|
Sys-gen | U04 | C01 | UUID of U04 | UUID of C01 | Joins | {memberNo: 1} |
插入相交路径
通过重复利用变量c02
插入两条相交的路径:

INSERT (:User {_id: 'U06', name: 'waveBliss'})-[:Joins {memberNo: 1}]->(c02:Club {_id: 'C02'})<-[:Joins {memberNo: 2}]-(:User {_id: 'U07', name: 'bella', gender: 'female'}),
(:User {_id: 'U08', name: 'Roose'})-[:Joins {memberNo: 3}]->(c02)