OrientDB强制属性类型为字符串

时间:2016-05-03 08:59:03

标签: orientdb orientdb-2.1

我正在使用OrientDB并在插入数据(数百万行)后尝试创建新属性。

我正在尝试在V上创建属性以创建索引,并且我收到以下错误:

  

数据库包含属性中的一些无模式数据   'V.ACCOUNT_NO'与STRING类型不兼容。修复那些   再次记录和更改架构[ONetworkProtocolHttpDb]

现在部分字段类型是INTEGER,但在我看来,将类型转换为STRING非常容易。
 我该如何处理整个数据?

1 个答案:

答案 0 :(得分:3)

我通过在无模式模式下创建这个简单的结构来尝试你的案例:

enter image description here

这些记录混合了INTEGERSTRING类型:

enter image description here

现在,您可以使用此查询转换非字符串记录类型:

UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING'

<强>输出:

enter image description here

关于异常,当我尝试在模式完全模式下创建类型为V.ACCOUNT_NO的新属性STRING时,我得到了相同的错误,这是正确的,因为该属性已存在于数据库中并且包含混合类型的记录,但是在无模式模式下。

转换完所有记录后,您就可以创建新属性。

enter image description here

希望有所帮助