修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

v5.0
搜索
    v5.0

      约束

      概述

      约束对进入图集中的数据施加限制规则。如果数据修改操作与约束有冲突,将引发报错。

      支持以下约束:

      创建约束

      使用语句ALTER NODEALTER EDGE创建一条约束。约束创建以作业形式执行,稍后可使用SHOW JOB来验证是否创建成功。

      创建约束需要一些时间,因为系统需扫描全部现有数据,以确保其符合约束要求。如果现有数据与约束不符,则约束创建失败。此外,为确保数据一致性,创建约束时,会暂停其他数据修改操作。

      EDGE KEY

      EDGE KEY限制有效指定一条边属性为边的唯一标识符。因此,指定的边属性必须在所有边schema中以同一值类型出现,且必须在全图包含唯一非null

      详情

      • 每个图只能拥有一个EDGE KEY约束。
      • EDGE KEY约束无法应用于list类型边属性。
      • EDGE KEY约束相关的边属性会自动缓存,以加速查询。
      • EDGE KEY约束应用于所有边schema时,必须使用*
      • 创建EDGE KEY约束时,强制要求每个分片中的属性值唯一,但允许不同分片中存在重复值。然而,EDGE KEY约束创建完成后,所有数据修改必须遵守全局唯一性。

      为边属性createdOn创建名为eUIDEDGE KEY约束:

      ALTER EDGE * ADD CONSTRAINT eUID EDGE KEY (createdOn)
      OPTIONS { 
        type: {createdOn: "datetime"}
      }
      

      若想成功创建该约束,必须满足以下条件:

      1. 所有边schema均有名为createdOn的属性,其类型必须为datetime
      2. 各分片中,createdOn属性值必须唯一且不存在null值。

      默认属性值类型

      未指定属性值类型时,默认使用string

      ALTER EDGE * ADD CONSTRAINT eUID EDGE KEY (createdOn)
      

      本例中,所有边schema必须包含string类型的createdOn边属性。

      复合EDGE KEY约束

      复合EDGE KEY约束涉及多个边属性。其创建要求与单属性EDGE KEY约束相同,但唯一性是基于指定属性的组合值强制执行的。

      为边属性createdOnweight创建名为eUIDs的复合EDGE KEY约束:

      ALTER EDGE * ADD CONSTRAINT eUIDs EDGE KEY (createdOn, weight)
      OPTIONS { 
        type: {createdOn: "datetime", weight: "float"}
      }
      

      NOT NULL

      NOT NULL约束强制要求一条属性不可拥有null,确保属性永远存在非空值。

      详情

      • NOT NULL约束必须针对单个指定schema创建。
      • 每个NOT NULL约束仅能指定一个属性。

      为点username属性创建名为nn_1NOT NULL约束:

      ALTER NODE user ADD CONSTRAINT nn_1 NOT NULL (name)
      

      为边linkweight属性创建名为nn_2NOT NULL约束:

      ALTER EDGE link ADD CONSTRAINT nn_2 NOT NULL (weight)
      

      当指定属性不存在null值时,约束才能创建成功。

      使用IF NOT EXISTS标志

      图中的约束名称必须唯一。如果创建的约束与已有约束重名,创建操作将失败,并返回错误消息表明名称重复。

      使用IF NOT EXISTS标志时,若在创建过程中检测到重复名称,作业将以FINISHED状态完成。不会返回错误信息,也不会创建新的约束。

      创建名为nn_1NOT NULL约束。如果约束名已存在,跳过创建过程,无需返回错误信息:

      ALTER NODE user ADD CONSTRAINT IF NOT EXISTS nn_1 NOT NULL (age)
      

      显示约束

      获取当前图集为点属性创建的所有约束:

      SHOW NODE CONSTRAINT
      

      获取当前图集为边属性创建的所有约束:

      SHOW EDGE CONSTRAINT
      

      约束信息展示在表_nodeConstraint和表 _edgeConstraint中。表中提供了各约束的基础信息:

      字段
      描述
      name 约束名称
      type 约束类型
      schema 应用约束的点schema或边schema
      properties 应用约束的点属性或边属性
      status 约束的状态,包括DONECREATING

      删除约束

      使用语句ALTER NODEALTER EDGE删除约束。

      为所有边schema删除名为eUIDEDGE KEY约束:

      ALTER EDGE * DROP CONSTRAINT eUID
      

      从点schema user中删除名为nn_1NOT NULL约束:

      ALTER NODE user DROP CONSTRAINT nn_1
      

      使用IF EXISTS标志

      如果指定的约束名称不存在,约束将删除失败,并返回错误信息。

      使用IF EXISTS标志后,如果指定的约束名称不存在,不会返回错误信息,也不会删除约束。

      从点schema user中删除名为nn的约束。若约束名称不存在,跳过删除过程,无需返回错误信息:

      ALTER NODE user DROP CONSTRAINT nn IF EXISTS
      

      对带有约束的属性限制

      重命名属性

      应用了NOT NULL约束的属性可以重命名。但应用了EDGE KEY约束的属性不可重命名。

      删除属性

      应用了约束的属性无法删除,除非所有相关约束均已删除。

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写