51 lines
2.1 KiB
Plaintext
51 lines
2.1 KiB
Plaintext
// 새로운 시나리오 'SCN04' 생성 및 순서 변경
|
|
|
|
// 1. 새로운 시나리오 'SCN04' 노드 생성 (SCN01 기반)
|
|
CREATE (s4:Scenario {id: 'SCN04', name: 'SCN01 순서 변경 시나리오', description: 'SCN01에서 Job 2와 Job 1의 순서를 변경'});
|
|
|
|
// 2. SCN01에 포함된 Job들을 SCN04에도 INCLUDES 관계로 연결합니다.
|
|
MATCH (s1:Scenario {id: 'SCN01'})-[r:INCLUDES]->(j:Job)
|
|
WITH s1, j
|
|
MATCH (s4:Scenario {id: 'SCN04'})
|
|
CREATE (s4)-[:INCLUDES]->(j);
|
|
|
|
// 3. SCN01의 순서를 기반으로 SCN04의 초기 순서를 복제합니다.
|
|
// - STARTS_WITH 관계 복제
|
|
MATCH (s1:Scenario {id: 'SCN01'})-[sw:STARTS_WITH]->(start_job:Job)
|
|
WITH s1, start_job
|
|
MATCH (s4:Scenario {id: 'SCN04'})
|
|
CREATE (s4)-[:STARTS_WITH]->(start_job);
|
|
|
|
// - NEXT 관계망 복제 (SCN04 시나리오에 종속된 NEXT 관계 생성)
|
|
MATCH (s1:Scenario {id: 'SCN01'})-[:STARTS_WITH]->(start_job:Job)
|
|
MATCH path = (start_job)-[:NEXT*]->(end_job:Job)
|
|
WHERE NOT (end_job)-[:NEXT]->()
|
|
WITH nodes(path) AS jobs
|
|
UNWIND range(0, size(jobs)-2) AS i
|
|
WITH jobs[i] AS from_job, jobs[i+1] AS to_job
|
|
MATCH (s4:Scenario {id: 'SCN04'})
|
|
// MERGE를 사용하여 SCN04의 Job들을 가져와서 NEXT 관계 생성
|
|
MERGE (j1:Job {id: from_job.id})
|
|
MERGE (j2:Job {id: to_job.id})
|
|
CREATE (j1)-[:NEXT {scenario: 'SCN04'}]->(j2);
|
|
|
|
|
|
// 4. SCN04에서 Job 1과 Job 2의 순서를 변경합니다. (기존 1->2->3 ... 을 2->1->3 ... 으로)
|
|
// - 기존 관계 삭제: (s4)-[sw:STARTS_WITH]->(j1), (j1)-[n1:NEXT {scenario: 'SCN04'}]->(j2)
|
|
MATCH (s4:Scenario {id: 'SCN04'})-[sw:STARTS_WITH]->(j1:Job {id: '1'})
|
|
DELETE sw;
|
|
|
|
MATCH (j1:Job {id: '1'})-[n1:NEXT {scenario: 'SCN04'}]->(j2:Job {id: '2'})
|
|
DELETE n1;
|
|
|
|
MATCH (j2:Job {id: '2'})-[n2:NEXT {scenario: 'SCN04'}]->(j3:Job {id: '3'})
|
|
DELETE n2;
|
|
|
|
// - 새로운 관계 생성: (s4)-[:STARTS_WITH]->(j2), (j2)-[:NEXT]->(j1), (j1)-[:NEXT]->(j3)
|
|
MATCH (s4:Scenario {id: 'SCN04'}), (j1:Job {id: '1'}), (j2:Job {id: '2'}), (j3:Job {id: '3'})
|
|
CREATE (s4)-[:STARTS_WITH]->(j2),
|
|
(j2)-[:NEXT {scenario: 'SCN04'}]->(j1),
|
|
(j1)-[:NEXT {scenario: 'SCN04'}]->(j3);
|
|
|
|
RETURN "SCN04가 성공적으로 생성되었습니다.";
|