Neo4j - создание отношений для ссылочной целостности - PullRequest
0 голосов
/ 28 мая 2020

Я принял все метаданные таблиц и столбцов, теперь я пытаюсь создать отношения, используя ссылочную целостность. У меня есть файл csv с 6 столбцами, а именно table_schema, table_name, col_name, referenced_table_schema, referenced_table_name и referenced_column_name. Теперь мне просто нужно создать связь между существующими узлами столбца, которые доступны. Шифрованный запрос, который я пробовал

LOAD CSV WITH HEADERS FROM "file:///column_ref_integrity.csv" AS csv
 MATCH (n:column), (m:table), (o:db)
 where n.col_name=csv.col_name and m.table_name =csv.table_name and o.db_name = csv.table_schema
where n.col_name=csv.referenced_column_name and m.table_name = csv.referenced_table_name and o.db_name=referenced.db_name
 MERGE  (n{col_name:csv.col_name})-[:refers]->(n{col_name:csv.referenced_column_name}) 

Этот запрос, похоже, не работает. Есть указания на то, что я делаю не так?

1 Ответ

1 голос
/ 28 мая 2020

Это может сработать для вас:

LOAD CSV WITH HEADERS FROM "file:///column_ref_integrity.csv" AS row
MATCH (c1:column), (c2:column)
WHERE c1.col_name = row.col_name AND c2.col_name = row.referenced_column_name
MERGE (c1)-[:refers]->(c2) 
WITH row
MATCH (t1:table), (t2:table)
WHERE t1.table_name = row.table_name AND t2.table_name = row.referenced_table_name
MERGE (t1)-[:refers]->(t2) 
WITH row
MATCH (d1:db), (d2:db)
WHERE d1.db_name = row.table_schema AND d2.db_name = row.referenced_table_schema
MERGE (d1)-[:refers]->(d2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...