Мутация
EdgeQL делает вставки, обновления, обновления и удаления легкими. Плюс, его компонуемый синтаксис делает написание вложенных мутаций и обновлений приятным.
Все приведенные ниже запросы предполагают следующую схему
insert Hero {
name := "Sam Wilson",
secret_identity := "The Falcon"
}
update Hero filter .name = "Sam Wilson" set {
secret_identity := "Captain America"
}
delete Hero filter .name = "Peter Parker";
insert Villain {
name := "Doctor Octopus",
nemesis := (insert Hero {
name := "Peter Parker",
secret_identity := "Spider-Man"
})
}
with
hero_name := "Peter Parker",
secret_identity := "Spider-Man"
insert Hero {
name := hero_name,
secret_identity := secret_identity
}
unless conflict on (.name)
else (
update Hero filter .name = hero_name set {
secret_identity := secret_identity
}
);