mysql-write-builders
Generates INSERT and UPDATE SQL statements for MySQL from JS objects and arrays
Installation:
npm i mysql-write-builders
Usage:
Insert
const writeSql = const items = id: 1 name: 'Test 1' color: 'Blue' id: 2 name: 'Test 2' color: 'Red' const result = writeSql/*result:{ sql: 'INSERT INTO test (id, name, color) VALUES ?', values: [ [ 1, 'Test 1', 'Blue' ], [ 2, 'Test 2', 'Red' ] ] }*/
Upsert
const writeSql = const items = id: 1 name: 'Test 1' color: 'Blue' id: 2 name: 'Test 2' color: 'Red' const result = /*result: { sql: 'INSERT INTO test (id, name, color) VALUES ? ON DUPLICATE KEY UPDATE id = VALUES(id), name = VALUES(name), color = VALUES(color)', values: items.map((item) => Object.keys(item).map((key) => item[key]))}*/
Insert ignore
const writeSql = const items = id: 1 name: 'Test 1' color: 'Blue' id: 2 name: 'Test 2' color: 'Red' const result = writeSql/*result:{ sql: 'INSERT IGNORE INTO test (id, name, color) VALUES ?', values: [ [ 1, 'Test 1', 'Blue' ], [ 2, 'Test 2', 'Red' ] ] }*/
Update
const writeSql = const item = name: 'Thing 1 (edited)' color: 'Green' const result = writeSql;/*result: { sql: UPDATE test SET name = $1, color = $2 WHERE id = 100; values: ['Thing 1 (edited)', 'Green']}*/
Why:
Writing UPDATE and INSERT SQL statements isn't terribly fun, this helps a little with that :)