Multiple mutations in a request =============================== If multiple mutations are part of the same request, they are executed **sequentially**. If any of the mutations fail, all the executed mutations will be rolled back (i.e. all the mutations are run as a **transaction**). Run multiple top level mutations transactionally ------------------------------------------------ **Example:** Delete all ``article`` objects written by an author and update the ``author`` object .. graphiql:: :view_only: :query: mutation reset_author { delete_article ( where: {author_id: {_eq: 6}} ) { affected_rows } update_author ( where: {id: {_eq: 6}} _set: {name: "Cory"} ) { returning { id name articles { id title } } } } :response: { "data": { "delete_article": { "affected_rows": 2 }, "update_author": { "returning": [ { "id": 6, "name": "Cory", "articles": [] } ] } } } Insert an object and a nested object in the same mutation --------------------------------------------------------- If you are trying to insert multiple objects which have relationships between them, you can use nested inserts. **Example:** Insert a new ``article`` object with its ``author`` and return the inserted article object with its author in the response .. graphiql:: :view_only: :query: mutation insert_article { insert_article( objects: [ { id: 21, title: "Article 1", content: "Sample article content", author: { data: { id: 11, name: "Cory" } } } ] ) { affected_rows returning { id title author { id name } } } } :response: { "data": { "insert_article": { "affected_rows": 2, "returning": [ { "id": 21, "title": "Article 1", "author": { "id": 11, "name": "Cory" } } ] } } }