修改密码

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

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)
  • Ultipa Powerhouse (v5)

Standalone

点击

了解 Ultipa Powerhouse (v5)架构中的四大组成部分。

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

Please complete this required field.

所有服务器的MAC地址,由换行符或逗号分隔。

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
Shard 服务最大数量
Shard 服务最大总核数
HDC 服务最大数量
HDC 服务最大总核数
申请天数
审批日期
过期日期
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.3
搜索
    v5.3

      约束

      概述

      约束对图中的点、边属性施加额外的限制规则。如果点、边的插入或更新操作与约束有冲突,将引发报错。

      嬴图支持在类型图中创建以下约束:

      • NOT NULL:要求属性不能有null
      • EDGE KEY:指定若干属性作为图中所有边的唯一标识符

      显示约束

      获取当前图的点约束:

      SHOW NODE CONSTRAINT
      

      获取当前图的边约束:

      SHOW EDGE CONSTRAINT
      

      也支持复数形式SHOW NODE|EDGE CONSTRAINTS

      每个约束包含以下信息:

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

      创建约束

      你可以在创建图创建图类型时创建约束,也可以在现有图中创建约束。在现有图中创建约束以作业形式执行,稍后可使用SHOW JOB <id?>来验证是否创建成功。

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

      NOT NULL

      NOT NULL约束要求一个属性不能有null。一个NOT NULL约束只能作用于一个Schema的一个属性。

      User点的name属性创建NOT NULL约束:

      ALTER NODE user ADD CONSTRAINT NOT NULL ON name
      

      link边的weight属性创建NOT NULL约束:

      ALTER EDGE link ADD CONSTRAINT NOT NULL ON weight
      

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

      你可以在创建类型图时创建NOT NULL约束:

      CREATE GRAPH g1 { 
        NODE User ({name STRING NOT NULL, age UINT32}),
        EDGE Follows ()-[{createdOn LOCAL DATETIME NOT NULL}]->()
      }
      

      你也可以在创建图类型时创建NOT NULL约束:

      CREATE GRAPH TYPE gType { 
        NODE User ({name STRING NOT NULL, age UINT32}),
        EDGE Follows ()-[{createdOn LOCAL DATETIME NOT NULL}]->()
      }
      

      EDGE KEY

      一个EDGE KEY约束指定一个或多个边属性作为图中所有边的唯一标识符,确保它们没有null值或重复值。当指定多个属性时,也称为复合EDGE KEY约束。

      详情

      • 每个图只能创建一个EDGE KEY约束:单属性EDGE KEY或复合EDGE KEY
      • EDGE KEY无法应用到LIST类型的属性。
      • EDGE KEY属性会自动缓存,以加速查询。
      • 创建EDGE KEY时,要求每个Shard中属性值唯一,但允许不同Shard中存在重复值。但EDGE KEY创建完成后,所有的数据修改必须遵守全局唯一性。

      单属性EDGE KEY

      ALTER EDGE * ADD CONSTRAINT EDGE KEY ON eID INT32
      

      成功创建这个EDGE KEY必须满足以下条件:

      1. 所有边均有eID属性,且类型为INT32
      2. eID属性没有null值或重复值。

      未指定属性值类型时,默认为STRING

      ALTER EDGE * ADD CONSTRAINT EDGE KEY ON tag
      

      本例中,所有边必须有STRING类型的tag属性。

      复合EDGE KEY

      ALTER EDGE * ADD CONSTRAINT EDGE KEY ON eID INT32, tag STRING
      

      成功创建这个EDGE KEY必须满足以下条件:

      1. 所有边均有INT32类型的eID属性和STRING类型的tag属性。
      2. eIDtag属性各自均没有null值。
      3. eIDtag属性的组合值没有重复。

      创建图时创建EDGE KEY

      你可以在创建类型图时创建EDGE KEY约束:

      CREATE GRAPH g1 { 
        NODE User ({name STRING , age UINT32}),
        NODE Club ({name STRING}),
        EDGE Follows ()-[{createdOn LOCAL DATETIME}]->(),
        EDGE Joins ()-[]->()
      }
      EDGE KEY eID INT64, tag STRING
      

      系统会自动为所有边Schema创建EDGE KEY指定的属性eIDtag

      创建图类型时创建EDGE KEY

      你可以在创建图类型时创建EDGE KEY约束:

      CREATE GRAPH TYPE gType { 
        NODE User ({name STRING, age UINT32}),
        NODE Club ({name STRING}),
        EDGE Follows ()-[{createdOn LOCAL DATETIME}]->(),
        EDGE Joins ()-[]->()
      }
      EDGE KEY eID INT64
      

      当使用这个图类型创建图时,系统会自动为所有边Schema创建EDGE KEY指定的属性eID

      使用IF NOT EXISTS

      IF NOT EXISTS子句可避免尝试创建已存在的约束时报错,从而安全地执行语句。

      ALTER NODE User ADD CONSTRAINT IF NOT EXISTS NOT NULL ON name
      

      只有User点的name属性没有已创建的NOT NULL约束时,才会创建约束。如果已存在,该语句将被忽略且不会报错。

      命名规范

      每个约束的名称需满足:

      • 包含2~64个字符
      • 以字母开头
      • 允许的字符:字母(A-Z,a-z),数字(0-9),下划线(_

      图中约束不能重名。

      删除约束

      删除当前图的EDGE KEY约束:

      ALTER EDGE * DROP EDGE KEY
      

      删除当前图User点的name属性的NOT NULL约束:

      ALTER NODE user DROP CONSTRAINT NOT NULL ON name
      

      对带有约束的属性限制

      重命名属性

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

      删除属性

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

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策
      请勾选表示您已阅读并同意。

      Copyright © 2019-2025 北京同心尚科技发展有限公司-保留所有权利 京ICP备19040872号-1