在Nebula执行创建顶点语句遇-1005类型错误的求助
问题根源与解决方法
你的两个-1005错误分别对应VID类型不匹配和顶点字段类型不匹配,具体排查和修复步骤如下:
1. 错误:Wrong vertex id type: hash("new")
Nebula的顶点ID(VID)类型由创建Space时指定的vid_type决定,仅支持INT64或FIXED_STRING(n)两种:
- 若Space的
vid_type是FIXED_STRING(n),VID必须是长度符合要求的字符串,不能用hash("new")生成的整数; - 若Space的
vid_type是INT64,hash("new")是合法的整数VID,出现此错误大概率是误判了Space的VID类型。
排查命令:
DESCRIBE SPACE <你的Space名称>;
修复示例:
- 若Space为
FIXED_STRING(64),直接用字符串作为VID:INSERT VERTEX school(name, create_time) VALUES "new":("new", "1985-10-01 08:00:00"); - 若要基于hash生成字符串VID,需转换为字符串(确保长度符合
FIXED_STRING要求):INSERT VERTEX school(name, create_time) VALUES toString(hash("new")):("new", "1985-10-01 08:00:00");
2. 错误:Storage Error: The data type does not meet the requirements
该错误是因为create_time字段的定义类型与插入的字符串格式不匹配:
- 若
create_time定义为DATETIME类型,不能直接传入字符串,必须用datetime()函数包裹; - 若
create_time定义为TIMESTAMP类型,需要传入时间戳数值(而非字符串); - 只有当
create_time是STRING类型时,直接传入字符串才合法。
排查命令:
DESCRIBE TAG school;
修复示例(假设create_time是DATETIME类型,Space为INT64):
INSERT VERTEX school(name, create_time) VALUES hash("new"):("new", datetime("1985-10-01 08:00:00"));
总结
先确认Space的VID类型和Tag的字段类型,再根据类型调整INSERT语句的VID格式和字段值格式,即可解决这两个-1005错误。
内容的提问来源于stack exchange,提问作者saber tabatabaee yazdi
相关产品推荐
相关产品推荐

