ALTER TAG¶
ALTER TAG
alters the structure of a tag 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 TAG
statement requires some privileges for the graph space. Otherwise, NebulaGraph throws an error.
- Before you alter properties for a tag, make sure that the properties are not indexed. If the properties contain any indexes, the conflict error
[ERROR (-1005)]: Conflict!
will occur when youALTER TAG
. For more information on dropping an index, see DROP INDEX.
- The property name must be unique in a tag. If you add a property with the same name as an existing property or a dropped property, the operation fails.
Syntax¶
ALTER TAG <tag_name>
<alter_definition> [[, alter_definition] ...]
[ttl_definition [, ttl_definition] ... ]
[COMMENT '<comment>'];
alter_definition:
| ADD (prop_name data_type [NULL | NOT NULL] [DEFAULT <default_value>] [COMMENT '<comment>'])
| DROP (prop_name)
| CHANGE (prop_name data_type [NULL | NOT NULL] [DEFAULT <default_value>] [COMMENT '<comment>'])
ttl_definition:
TTL_DURATION = ttl_duration, TTL_COL = prop_name
tag_name
: Specifies the tag name that you want to alter. You can alter only one tag in one statement. Before you alter a tag, make sure that the tag exists in the current working graph space. If the tag does not exist, an error will occur when you alter it.
- Multiple
ADD
,DROP
, andCHANGE
clauses are permitted in a singleALTER TAG
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.
-
When using
CHANGE
to modify the data type of a property:- Only the length of a
FIXED_STRING
or anINT
can be increased. The length of aSTRING
or anINT
cannot be decreased.
- Only the data type conversions from FIXED_STRING to STRING and from FLOAT to DOUBLE are allowed.
- Only the length of a
Examples¶
nebula> CREATE TAG IF NOT EXISTS t1 (p1 string, p2 int);
nebula> ALTER TAG t1 ADD (p3 int32, fixed_string(10));
nebula> ALTER TAG t1 TTL_DURATION = 2, TTL_COL = "p2";
nebula> ALTER TAG t1 COMMENT = 'test1';
nebula> ALTER TAG t1 ADD (p5 double NOT NULL DEFAULT 0.4 COMMENT 'p5') COMMENT='test2';
// Change the data type of p3 in the TAG t1 from INT32 to INT64, and that of p4 from FIXED_STRING(10) to STRING.
nebula> ALTER TAG t1 CHANGE (p3 int64, p4 string);
[ERROR(-1005)]: Unsupported!
Implementation of the operation¶
Trying to use a newly altered tag may fail because the alteration of the tag 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:
October 24, 2023