Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
Предложение DELETE удаляет элементы графа — вершины, рёбра или пути.
Примечание!
Ограничения наDELETEв YMatrix AGE:
- Нельзя присваивать свойства переменной после её удаления через
DELETE.MATCH (n) DELETE n SET n.lol = 'ftw' RETURN n -- ОШИБКА: нельзя присвоить свойство удалённой переменной n- Нельзя создавать ребро через
CREATE, ссылающееся на переменную, удалённую в том же запросе.MATCH (a)-[e:KNOWS]->(b) DELETE e CREATE (a)-[:KNOWS {reason: 'new'}]->(b) -- ОШИБКА: AssignTransactionId() вызван процессом Segment ReaderРекомендация: Разделите операции
DELETEи последующие операции записи на отдельные запросы Cypher.
Предложение DELETE, за которым не следует ни одно другое предложение, называется завершающим. Если запрос Cypher завершается завершающим предложением DELETE, функция cypher() не возвращает строк. Однако объявление списка столбцов при вызове функции обязательно — например, AS (v agtype). При завершающем предложении DELETE можно указать любое фиктивное имя столбца; оно не будет содержать данных.
Для удаления свойств см. REMOVE.
Удаление вершины невозможно без одновременного удаления всех рёбер, для которых она является начальной или конечной. Либо удалите такие рёбра явно до удаления вершины, либо используйте DETACH DELETE.
Для удаления вершины используйте предложение DELETE.
SELECT *
FROM cypher('graph_name', $$
MATCH (v:Useless)
DELETE v
$$) AS (v agtype);
Этот запрос удаляет вершины с меткой Useless, не инцидентные ни одному ребру. Данные не возвращаются.
| v |
|---|
| (0 строк) |
Сначала привяжите вершины через MATCH, затем примените DETACH DELETE, чтобы сначала удалить все инцидентные рёбра, а затем сами вершины.
SELECT *
FROM cypher('graph_name', $$
MATCH (v:Useless)
DETACH DELETE v
$$) AS (v agtype);
Этот запрос не возвращает данных.
| v |
|---|
| (0 строк) |
Для удаления ребра сначала выполните его MATCH, затем включите связанную переменную в предложение DELETE.
SELECT *
FROM cypher('graph_name', $$
MATCH (n {name: 'Andres'})-[r:KNOWS]->()
DELETE r
$$) AS (v agtype);
Этот запрос не возвращает данных.
| v |
|---|
| (0 строк) |
Удалённую вершину можно вернуть с помощью RETURN.
SELECT *
FROM cypher('graph_name', $$
MATCH (n {name: 'A'})
DELETE n
RETURN n
$$) AS (a agtype);
| v |
|---|
{"id": 281474976710659, "label": "", "properties": {"name": "A"}}::vertex |
| (1 строка) |