标签: orientdb orientdb-2.1
我正在使用OrientDB并在插入数据(数百万行)后尝试创建新属性。
我正在尝试在V上创建属性以创建索引,并且我收到以下错误:
数据库包含属性中的一些无模式数据 'V.ACCOUNT_NO'与STRING类型不兼容。修复那些 再次记录和更改架构[ONetworkProtocolHttpDb]
现在部分字段类型是INTEGER,但在我看来,将类型转换为STRING非常容易。 我该如何处理整个数据?
答案 0 :(得分:3)
我通过在无模式模式下创建这个简单的结构来尝试你的案例:
这些记录混合了INTEGER和STRING类型:
INTEGER
STRING
现在,您可以使用此查询转换非字符串记录类型:
UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING'
<强>输出:强>
关于异常,当我尝试在模式完全模式下创建类型为V.ACCOUNT_NO的新属性STRING时,我得到了相同的错误,这是正确的,因为该属性已存在于数据库中并且包含混合类型的记录,但是在无模式模式下。
V.ACCOUNT_NO
转换完所有记录后,您就可以创建新属性。
希望有所帮助