跳转至

NULLGraph

默认情况下,插入点或边时,属性值可以为NULL,用户也可以设置属性值不允许为NULLNOT NULL),即插入点或边时必须设置该属性的值,除非创建属性时已经设置默认值。

NULL的逻辑操作Graph

ANDORXORNOT的真值表如下。

a b a AND b a OR b a XOR b NOT a
false false false false false true
false null false null null true
false true false true true true
true false false true true false
true null null true null false
true true true true false false
null false false null null null
null null null null null null
null true null true null null

OpenCypher兼容性Graph

NebulaGraph中,NULL的比较和操作与openCypher不同,后续也可能会有变化。

NULL的比较Graph

NebulaGraph中,NULL的比较操作不兼容openCypher。

NULL的操作和返回Graph

NebulaGraph中,对NULL的操作以及返回结果不兼容openCypher。

示例Graph

使用NOT NULLGraph

创建Tag,名称为player,指定属性nameNOT NULL

nebula> CREATE TAG player(name string NOT NULL, age int);

使用SHOW命令查看创建Tag语句,属性nameNOT NULL,属性age为默认的NULL

nebula> SHOW CREATE TAG player;
+-----------+-----------------------------------+
| Tag       | Create Tag                        |
+-----------+-----------------------------------+
| "student" | "CREATE TAG `player` (           |
|           |  `name` string NOT NULL,          |
|           |  `age` int64 NULL                 |
|           | ) ttl_duration = 0, ttl_col = """ |
+-----------+-----------------------------------+

插入点Kobe,属性age可以为NULL

nebula> INSERT VERTEX player(name, age) VALUES "Kobe":("Kobe",null);

使用NOT NULL并设置默认值Graph

创建Tag,名称为player,指定属性ageNOT NULL,并设置默认值18

nebula> CREATE TAG player(name string, age int NOT NULL DEFAULT 18);

插入点Kobe,只设置属性name

nebula> INSERT VERTEX player(name) VALUES "Kobe":("Kobe");

查询点Kobe,属性age为默认值18

nebula> FETCH PROP ON player "Kobe";
+-----------------------------------------+
| vertices_                               |
+-----------------------------------------+
| ("Kobe" :player{age: 18, name: "Kobe"}) |
+-----------------------------------------+

最后更新: October 26, 2021
Back to top