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