/ लेनदेन रोलबैक के बाद डेटाबेस में सम्मिलित क्वेरी परिणाम क्यों रहते हैं? पीजी-वादा - node.js, पीजी-वादा

लेनदेन रोलबैक के बाद डेटाबेस में सम्मिलित क्वेरी परिणाम क्यों रहते हैं? पीजी-वादा - node.js, पीजी-वादा

मैंने हाल ही में अपनी परियोजनाओं में से एक में पीजी-वादा लागू किया है और यह समझने की कोशिश कर रहा हूं कि लेनदेन कैसे कार्य करता है। मैं निम्नलिखित फ़ंक्शन के साथ परीक्षण कर रहा हूं:

testFunction: (req, res, next) => {
db.tx(async t =>{
await db.any("insert into services (servicename, price, itemcode, servicedescription, active, subscriptionid) values ($1, $2, $3, $4, $5, $6) returning *;", ["babysitting", 25, "12321", "taking care of children", true, 1])
await db.any("insert into orangutans (name, age, sex) values ($1, $2, $3)", ["beau", 22, "male"])
})
.then(data=>{
res.json(data)
})
.catch(error=>{
res.json(error)
})
}

मैंने पीजी-वादे दस्तावेज में निम्नलिखित उदाहरण के बाद कोड के इस टुकड़े को मॉडल किया:

db.tx(async t => {
await t.none("UPDATE users SET active = $1 WHERE id = $2", [true, 123]);
await t.one("INSERT INTO audit(entity, id) VALUES($1, $2) RETURNING id", ["users", 123]);
})
.then(data => {
// success, COMMIT was executed
})
.catch(error => {
// failure, ROLLBACK was executed
});

पहली क्वेरी सफलतापूर्वक चलती है और एक प्रविष्ट करती हैडेटाबेस में रिकॉर्ड करें। दूसरी क्वेरी विफल हो जाती है क्योंकि संबंध "orangutans" मौजूद नहीं है। मुझे लगता है कि लेनदेन रोलबैक के हिस्से के रूप में डेटाबेस से हटाए जाने वाले पहले प्रश्न द्वारा रिकॉर्ड किया गया रिकॉर्ड। जब मैं इस कोड के निष्पादन के बाद डेटाबेस की जांच करता हूं तो रिकॉर्ड डेटाबेस में रहता है। क्या कोई मुझे सही दिशा में इंगित कर सकता है कि यह समझने के लिए कि रिकॉर्ड क्यों नहीं हटाया गया था?

उत्तर:

जवाब के लिए 0 № 1

जैसे ही मैंने समीक्षा करने के लिए सवाल खोला, मैंने अपना जवाब देखा। मैं फोन कर रहा था। "टी" के बजाय "डीबी" पर। जैसे ही मैंने यह परिवर्तन किया, यह काम करता था।