Skip to content

metaInsert

A simple wrapper for bulk insert. This checks for valid fields and accepts array or object.


Demo

Simple insert

js
const fields = [
  'name'
]

const payload = {
  name: 'Jeash'
}

const result = knex('users')
  .metaInsert(payload, fields)
  .toString()
sql
INSERT INTO
  `users` (`name`)
VALUES
  ('Jeash')

Simple insert with multiple payload

js
const fields = [
  'name'
]

const payload = [
  {
    name: 'Jeash'
  },
  {
    name: 'Ernie'
  }
]

const result = knex('users')
  .metaInsert(payload, fields)
  .toString()
sql
INSERT INTO
  `users` (`name`)
VALUES
  ('Jeash'),
  ('Ernie')

Undefined values will default to DEFAULT

js
const fields = [
  'name'
]

const payload = [
  {
    name: 'Jeash'
  },
  {
    name: undefined
  }
]

const result = knex('users')
  .metaInsert(payload, fields)
  .toString()
sql
INSERT INTO
  `users` (`name`)
VALUES
  ('Jeash'),
  (DEFAULT)

Transforms JSON fields

js
const fields = [
  'name',
  'age',
  'settings'
]

const payload = [
  {
    name: 'Jeash',
    settings: { percentage: 12 }
  },
  {
    name: 'Josh',
    age: '52'
  }
]

const result = knex('users')
  .metaInsert(payload, fields)
  .toString()
sql
INSERT INTO
  `users` (`age`, `name`, `settings`)
VALUES
  (DEFAULT, 'Jeash', '{\"percentage\":12}'),
  ('52', 'Josh', DEFAULT)