Мутация

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
  }
);