Почему мои запросы на шифрование, инициированные Python, не подчиняются проверенным ограничениям уникальности и не создают дублирующие узлы? - PullRequest
1 голос
/ 30 апреля 2019

Замечание: Уникальное ограничение не поддерживается через python до тех пор, пока один и тот же запрос LOAD CSV не будет выполнен через браузер, после чего python и браузер будут поддерживать ограничение уникальности.

Я провожу некоторое тестирование в локальном сообществе 3.5.4сервер базы данныхЯ пытаюсь загрузить некоторые узлы в БД, инициируя загрузку CSV и запрос слияния.Я установил уникальное ограничение, прежде чем сделать это.Я заметил, что, делая это через python, он фактически не соблюдает ограничения.Я могу проверить, была ли принята команда ограничений, но когда я загружаю другой файл, он все равно дублирует узлы, несмотря на ограничение и использование MERGE.

Я заметил, что, как только я использовал тот же самый точный запрос CSV LOAD прямо в браузере, он снова загружается с дубликатами, но после этого начинает соблюдать ограничение.Каждая загрузка CSV после этого через браузер затем блокирует любые новые узлы на основе ограничения.Но после этого выполняется тот же запрос через python, затем дублируются узлы, хотя он только что заблокировал их при работе через браузер.

qry1 = "CREATE CONSTRAINT ON (n:Import) ASSERT n.GUID IS UNIQUE"
qry2 = "LOAD CSV WITH HEADERS FROM 'file:///file.csv' AS f MERGE (:Import {ExternalId:f.ExternalId,NodeType:f.NodeType,GUID:f.GUID})"

#CREATE CONSTARINT
with neo_driver.session() as session:
    tx = session.begin_transaction()
    tx.run(qry1)
    tx.commit()

#CREATE NODES
with neo_driver.session() as session:
    tx = session.begin_transaction()
    tx.run(qry2)
    tx.commit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...