跳转至

ALTER EDGE

ALTER EDGE语句可以修改 Edge type 的结构。例如增删属性、修改数据类型,也可以为属性设置、修改 TTL(Time-To-Live)。

注意事项

  • 登录的用户必须拥有对应权限才能执行ALTER EDGE语句。详情请参见内置角色权限
  • 确保要修改的属性不包含索引,否则ALTER EDGE时会报冲突错误[ERROR (-1005)]: Conflict!。删除索引请参见 drop index
  • 确保新增的属性名不与已存在或被删除的属性名同名,否则新增属性会失败。
  • 允许增加FIXED_STRINGINT类型的长度。
  • 允许FIXED_STRING类型转换为STRING类型、FLOAT类型转换为DOUBLE类型。

语法

ALTER EDGE <edge_type_name>
    <alter_definition> [, alter_definition] ...]
    [ttl_definition [, ttl_definition] ... ]
    [COMMENT = '<comment>'];

alter_definition:
| ADD    (prop_name data_type)
| DROP   (prop_name)
| CHANGE (prop_name data_type)

ttl_definition:
    TTL_DURATION = ttl_duration, TTL_COL = prop_name
  • edge_type_name:指定要修改的 Edge type 名称。一次只能修改一个 Edge type。请确保要修改的 Edge type 在当前工作空间中存在,否则会报错。
  • 可以在一个ALTER EDGE语句中使用多个ADDDROPCHANGE子句,子句之间用英文逗号(,)分隔。
  • 当使用ADDCHANGE指定属性值为NOT NULL时,必需为该属性指定默认值,即定义DEFAULT的值。

示例

nebula> CREATE EDGE IF NOT EXISTS e1(p1 string, p2 int);
nebula> ALTER EDGE e1 ADD (p3 int, p4 string);
nebula> ALTER EDGE e1 TTL_DURATION = 2, TTL_COL = "p2";
nebula> ALTER EDGE e1 COMMENT = 'edge1';

修改 Edge type 说明

尝试使用刚修改的 Edge type 可能会失败,因为修改是异步实现的。为确保数据同步,后续操作能顺利进行,请等待 2 个心跳周期(20 秒)。

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


最后更新: September 4, 2023