नीचे दिया गया उदाहरण पुस्तकालय पीजी-वादा और इसकी विधि helpers.update पर आधारित है:
// library initialization, usually placed in its own module:
const pgp = require('pg-promise')({
capSQL: true // capitalize all generated SQL
});
const db = pgp(/*your connection details*/);
// records to be updated:
const updateData = [
{id: 1, value: 1234},
{id: 2, value: 5678},
{id: 3, value: 91011}
];
// declare your ColumnSet once, and then reuse it:
const cs = new pgp.helpers.ColumnSet(['?id', 'value'], {table: 'fit_ratios'});
// generating the update query where it is needed:
const update = pgp.helpers.update(updateData, cs) + ' WHERE v.id = t.id';
//=> UPDATE "fit_ratios" AS t SET "value"=v."value"
// FROM (VALUES(1,1234),(2,5678),(3,91011))
// AS v("id","value") WHERE v.id = t.id
// executing the query:
await db.none(update);
बहु-पंक्ति अद्यतन उत्पन्न करने की इस पद्धति की विशेषता इस प्रकार हो सकती है:
- बहुत तेज़, क्योंकि यह कॉलमसेट प्रकार पर निर्भर करता है जो क्वेरी जनरेशन के लिए स्मार्ट कैशिंग लागू करता है
- पूरी तरह से सुरक्षित, क्योंकि सभी डेटा प्रकार लाइब्रेरी के क्वेरी फ़ॉर्मेटिंग इंजन के माध्यम से जा रहे हैं ताकि यह सुनिश्चित हो सके कि सब कुछ फ़ॉर्मेट किया गया है और सही तरीके से बच गया है।
- कॉलम परिभाषा के लिए समर्थित उन्नत ColumnConfig सिंटैक्स के कारण बहुत लचीला है।
- पीजी-वादा द्वारा कार्यान्वित सरलीकृत इंटरफ़ेस के कारण उपयोग करने में बहुत आसान है।
ध्यान दें कि हम ?
. का उपयोग करते हैं कॉलम के सामने id
यह इंगित करने के लिए कि कॉलम शर्त का हिस्सा है, लेकिन अपडेट नहीं किया जाना है। संपूर्ण कॉलम सिंटैक्स के लिए क्लास कॉलम और कॉलम कॉन्फिग संरचना देखें।
संबंधित प्रश्न:पीजी-वादे के साथ बहु-पंक्ति सम्मिलित करें।