跳转至

NULL

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

NULL的逻辑操作

ANDORXORNOT的真值表如下。

a b a AND b a OR b a XOR 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兼容性

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

NULL的比较

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

NULL的操作和返回

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

示例

使用NOT NULL

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

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

使用SHOW命令查看创建标签语句,属性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并设置默认值

创建标签,名称为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"}) |
+-----------------------------------------+

最后更新: 2021年5月14日