Neo4j - ошибка CASE DETACH DELETE: неверный ввод «S»

Я пытаюсь отключить удаление в конкретном случае. У меня есть следующий запрос.

MATCH (childNode)-[r]-(parentNode)
CASE WHEN childNode.version = 1
THEN DETACH DELETE childNode, parentNode
ELSE DETACH DELETE childNode
RETURN childNode, parentNode

Я продолжаю получать следующую ошибку:

Neo.ClientError.Statement.SyntaxError: Invalid input 'S': expected 'l/L' (line 7, column 3 (offset: 425))
"CASE cv.version"
   ^

Я не понимаю, почему возникает проблема. Насколько мне известно, нет неверных данных. Что я делаю не так?


person Chris    schedule 19.08.2019    source источник


Ответы (1)


CASE можно использовать только в RETURN или WITH для преобразования одного значения в другое. Вы не можете использовать CASE для выполнения условного запроса.

Итак, в вашем случае я рекомендую вам сделать два запроса:

MATCH (childNode {version:1})-[r]-(parentNode)
DETACH DELETE childNode, parentNode;

MATCH (childNode)-[r]-(parentNode)
DETACH DELETE childNode;
person logisima    schedule 19.08.2019