Тип свойства силы OrientDB должен быть строкой

Я использую OrientDB и пытаюсь создать новое свойство после того, как вставил свои данные (миллионы строк).

Я пытаюсь создать свойство на V для создания индекса, и я получаю следующую ошибку:

База данных содержит некоторые данные без схемы в свойстве V.ACCOUNT_NO, которые не совместимы с типом STRING. Исправьте эти записи и снова измените схему [ONetworkProtocolHttpDb]

Теперь часть типа поля имеет тип INTEGER, но мне кажется, что преобразовать тип в STRING очень просто.
как я могу сделать это со всеми данными?

1 ответ

Решение

Я попробовал ваш случай, создав эту простую структуру в режиме без схемы:

введите описание изображения здесь

Эти записи представляют собой смесь INTEGER а также STRING типы:

введите описание изображения здесь

Теперь вы можете преобразовать тип не строковых записей с помощью этого запроса:

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

Выход:

введите описание изображения здесь

Про исключение, я получил правильно ту же ошибку при попытке создать новое свойство V.ACCOUNT_NO типа STRING в режиме полной схемы, и это правильно, поскольку свойство уже существует в базе данных и содержит смешанные типы записей, хотя и в режиме без схемы.

Как только все записи будут конвертированы, вы сможете создать новое свойство.

введите описание изображения здесь

Надеюсь, поможет

Другие вопросы по тегам