/knex-increment-upsert

knex insert on duplicate key update & increment

Primary LanguageTypeScriptMIT LicenseMIT

knex-increment-upsert 👋

Documentation Documentation Documentation Maintenance License: MIT

knex insert and on duplicate key update & increment

🔗 Link

📥 Install

npm install knex-increment-upsert

🧩 Requirements

  • knex >= v0.95.0

📖 Usage

incrementUpsert(db, tableName, data, incrementColumns?, updateColumns?, trx?) => Promise<number[]>

  • Single upsert

const { incrementUpsert } = require('knex-increment-upsert');
const knex = require('knex');

const db = knex({ ... });

// Outputs:
// insert into `table1` (`inc1`, `pk1`, `pk2`) values (3, 'pk1', 'pk2') on duplicate key update `inc1` = `inc1` + values(`inc1`)
incrementUpsert(
  db, 
  'table1', 
  {
    pk1: 'pk1',
    pk2: 'pk2',
    inc1: 3,
  }, 
  [ 'inc1' ]
);
  • Batch upsert

// Outputs:
// insert into `table1` (`col1`, `inc1`, `pk1`, `pk2`) values ('1', 1, '1', '1'), ('2', 2, '2', '2') on duplicate key update `inc1` = `inc1` + values(`inc1`),`col1` = values(`col1`)
incrementUpsert(
  db,
  'table1',
  [
    {
      pk1: '1',
      pk2: '1',
      inc1: 1,
      col1: '1'
    },
    {
      pk1: '2',
      pk2: '2',
      inc1: 2,
      col1: '2'
    }
  ],
  [ 'inc1' ],
  [ 'col1' ]
);

🙋‍♂️ Author

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

🌟 Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2021 a179346.
This project is MIT licensed.


This README was generated with ❤️ by readme-md-generator