मैंने इस कोड को ऑब्जेक्ट के रूप में एक पंक्ति या ऑब्जेक्ट की एक सरणी के रूप में एकाधिक पंक्तियों को सम्मिलित/अपडेट करने के लिए लिखा था:
function insertOrUpdate(knex: Knex, tableName: string, data: any) {
const firstData = data[0] ? data[0] : data;
return knex.raw(knex(tableName).insert(data).toQuery() + " ON DUPLICATE KEY UPDATE " +
Object.getOwnPropertyNames(firstData).map((field) => `${field}=VALUES(${field})`).join(", "));
}