Oriendb select @ rid из таблицы возвращает -2: 0

При выполнении следующего запроса в Oriendb (2.1.2) @ rid возвращает отрицательное значение rid, а фактически rid присутствует в ключе rid. Дополнительные объяснения см. Ниже.

Подзапрос:

select @rid from actions

ОП:

{
    "result": [
        {
            "@type": "d",
            **"@rid": "#-2:0",**
            "@version": 0,
            **"rid": "#12:24",**
            "@fieldTypes": "rid=x"
        }
    ],
    "notification": "Query executed in 0.026 sec. Returned 1 record(s)"
}

Основной запрос:

INSERT INTO activityDetails SET name = "Dummy",actionMap ={"1":(**select  @rid from action where start is not null**-->Returns a invalid Rid),"2":(select * from action where stop is not null)};

Op:

com.orientechnologies.orient.core.exception.OValidationException: The field 'activityDetails.actionMap' has been declared as LINKMAP but the value is not a record or a record-id

Как заменить в подзапросе rid вместо @rid?

0
0
60
1

Ответы 1

Отрицательный RID означает, что это временно. Когда транзакция фиксируется, настоящий RID будет назначен на этот счет, после фиксации RID будет изменен и обновлен в объекте.

когда вы делаете вставку, из выборок возвращается только одна запись? вы можете провести тест, выбрав «предел 1»)

да, из select будет возвращена только запись. Пробовал с пределом 1, но улучшения

Pyntamil Selvi 12.04.2018 14:00

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