J.w
J.w

Reputation: 1

How to insert an object and related array objects in one mutation

I have two tables reels and reel_variations, reels can have many reel_variations and reel_variations belong to one reel. I have read the Hasura docs and haven't been able to figure out how to insert a reel and a couple of reel variations in a single mutation.

mutation insertReelsAndVariations($objects: [reels_insert_input!]! = {}) {
  insert_reels(objects: $objects) {
    affected_rows
    returning {
      description
      id
      name
      variations {
        ball_bearings
        braid_capacity
        created_at
        deleted_at
        gear_ratio
        max_drag
        line_capacity
        id
        model_number
        recovery
        reel_id
        retrieve
      }
    }
  }
}

Variables

{
  "objects": {
    "name": "nice reel",
    "description": "wicked nice reel",
    "variations": {
      "data": {
        "ball_bearings": "djjdfkjdkjfdjkfjkd",
        "braid_capacity": "dkfjdkfjkdf",
        "gear_ratio": "20:1",
        "max_drag": "20lbs",
        "line_capacity": "400yrds",
        "model_number": "jfdkjfkjdkfjkdjfjdf",
        "recovery": "30 per turn"
      }
    }
  }
}

Errors

{
  "errors": [
    {
      "extensions": {
        "path": "$.selectionSet.insert_reels.args.objects[0].variations.data",
        "code": "constraint-violation"
      },
      "message": "Not-NULL violation. null value in column \"reel_id\" violates not-null constraint"
    }
  ]
}

Upvotes: 0

Views: 875

Answers (1)

Muluken Getachew
Muluken Getachew

Reputation: 1033

That's because the reel_id column is not set as a foreign key col referencing the reels table. So u can simply:

Make the reel_id col a foreign key which points to the id column of reels table!

Upvotes: 1

Related Questions