Skip to Content

insert(data: InsertDataWithNested, params?: SelectParams): Promise<GetReturningReturnType>

Inserts a new record into the table.

Parameters

  • data required InsertDataWithNested

    TODO: pick only joined tables from schema AND exclude parent fkey columns from the nested data

  • params optional SelectParams

    • limit optional number | null | undefined

      Max number of rows to return. Defaults to 1000

      • On client publish rules can affect this behaviour: cannot request more than the maxLimit (if present)
    • offset optional number

      Number of rows to skip

    • groupBy optional boolean

      Will group by all non aggregated fields specified in select (or all fields by default)

    • returnType optional “row” | “value” | “values” | “statement” | “statement-no-rls” | “statement-where” | undefined

      Result data structure/type:

      • row: the first row as an object
      • value: the first value from of first field
      • values: array of values from the selected field
      • statement: sql statement
      • statement-no-rls: sql statement without row level security
      • statement-where: sql statement where condition
    • select optional Select

      Fields/expressions/linked data to select

      • "*" or undefined will return all fields
      • { field: 0 } - all fields except the specified field will be selected. Cannot be combined with inclusive selects (1, true, function or join selects)
      • { field: 1 } - only the specified field will be selected
      • { field: { $funcName: [...args] } } - the field will be selected with the specified function applied
      • { field: 1, referencedTable: "*" } - field together with all fields from referencedTable will be returned (as an array). The referencedTable must have a reference to the current table through foreign keys for this to work
      • { linkedData: { $leftJoin: ["lookupTable", "targetTable"], select: { field: 1 } } } - linkedData will contain the linked/joined records from referencedTable as an array of objects.
    • orderBy optional OrderBy

      Order by options

      • Order is maintained in arrays
      • [{ key: "field", asc: true, nulls: "last" }]
    • having optional FullFilter

      Filter applied after any aggregations (group by)

Return type

GetReturningReturnType

Last updated on