ALTER EDGE¶
ALTER EDGE
alters the structure of an edge type with the given name in a graph space. You can add or drop properties, and change the data type of an existing property. You can also set a TTL (Time-To-Live) on a property, or change its TTL duration.
Notes¶
- Running the
ALTER EDGE
statement requires some privileges for the graph space. Otherwise, NebulaGraph throws an error.
- Before you alter properties for an edge type, make sure that the properties are not indexed. If the properties contain any indexes, the conflict error
[ERROR (-1005)]: Conflict!
will occur when youALTER EDGE
. For more information on dropping an index, see DROP INDEX.
- The property name must be unique in an edge type. If you add a property with the same name as an existing property or a dropped property, the operation fails.
- Only the length of a
FIXED_STRING
or anINT
can be increased.
- Only the data type conversions from FIXED_STRING to STRING and from FLOAT to DOUBLE are allowed.
Syntax¶
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
: Specifies the edge type name that you want to alter. You can alter only one edge type in one statement. Before you alter an edge type, make sure that the edge type exists in the graph space. If the edge type does not exist, an error occurs when you alter it.
- Multiple
ADD
,DROP
, andCHANGE
clauses are permitted in a singleALTER EDGE
statement, separated by commas.
- When a property value is set to
NOT NULL
usingADD
orCHANGE
, a default value must be specified for the property, that is, the value ofDEFAULT
must be specified.
Example¶
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';
Implementation of the operation¶
Trying to use a newly altered edge type may fail because the alteration of the edge type is implemented asynchronously. To make sure the follow-up operations work as expected, Wait for two heartbeat cycles, i.e., 20 seconds.
To change the heartbeat interval, modify the heartbeat_interval_secs
parameter in the configuration files for all services.
Last update:
February 7, 2023