CREATE TAG

    nGQL中的tag和openCypher中的label相似,但又有所不同,例如它们的创建方式。

    • openCypher中的label需要在CREATE语句中与点一起创建。
    • nGQL中的tag需要使用CREATE TAG语句独立创建。tag更像是MySQL中的表。

    执行CREATE TAG语句需要当前登录的用户拥有指定图空间的创建标签权限,否则会报错。

    创建标签前,需要先用USE语句指定工作空间。

    • tag_name:每个图空间内的标签必须是唯一的。标签名称设置后无法修改。允许的标签名称规则与图空间名称规则相同,详情请参见。

    • prop_name

      属性名称。每个标签中的属性名称必须唯一。

    • 属性的数据类型。数据类型的完整说明,请参见数值类型、等文档。

    • NULL | NOT NULL

      指定属性值是否支持为。默认值为NULL

    • DEFAULT

      指定属性的默认值。默认值可以是一个文字值或Nebula Graph支持的表达式。如果插入点时没有指定某个属性的值,则使用默认值。

    • TTL_DURATION

      指定属性存活时间。超时的属性将会过期。属性值和时间戳差值之和如果小于当前时间戳,属性就会过期。默认值为0,表示属性永不过期。

    • 指定要设置存活时间的属性。属性的数据类型必须是int或者timestamp

    一个标签只能指定一个字段为TTL_COL。更多TTL的信息请参见TTL

    1. nebula> CREATE TAG player(name string, age int);
    2. # 创建包含默认值的标签。
    3. nebula> CREATE TAG player_with_default(name string, age int DEFAULT 20);
    4. # 对字段create_time设置TTL为100秒。
    5. nebula> CREATE TAG woman(name string, age int, \
    6. married bool, salary double, create_time timestamp) \
    7. TTL_DURATION = 100, TTL_COL = "create_time";

    尝试使用新创建的标签可能会失败,因为创建是异步实现的。

    Nebula Graph将在下一个心跳周期内完成标签的创建,为了确保创建成功,可以使用如下方法之一:

    • 在语句的结果中查找新的标签,如果找不到,请等待几秒重试。

    • 等待两个心跳周期,例如20秒。

    如果需要修改心跳间隔,请为所有配置文件修改参数。