अपने upsert() उदाहरण में आप id प्रदान नहीं कर रहे हैं अप्सर्ट विधि में प्रवेश के लिए। इसका मतलब है कि अगली कड़ी आईडी . से मेल नहीं खा सकती है एक पंक्ति में (क्योंकि id अपरिभाषित है) और इसलिए यह एक नई पंक्ति सम्मिलित करता है।
यहां तक कि अगर आप किसी भिन्न प्राथमिक कुंजी का उपयोग करते हैं, तो इसका मिलान करने के लिए यह हमेशा एक गुण होना चाहिए क्योंकि सीक्वेलाइज़ किसी मौजूदा पंक्ति को खोजने के लिए प्राथमिक कुंजी का उपयोग करता है।
createOrUpdateTransaction: {
type: Transaction,
args: {
// Omitted code...
},
resolve: (root, args) => {
return db.models.transaction.upsert({
// The id property must be defined in the args object for
// it to match to an existing row. If args.id is undefined
// it will insert a new row.
id: args.id,
time: new Date().toString(),
payerAccountNumber: args.payerAccountNumber,
recipientAccountNumber: args.recipientAccountNumber,
amount: args.amount,
currency: args.currency,
paymentMethod: args.paymentMethod,
cardNumber: args.cardNumber,
cardName: args.cardName,
cardNetwork: args.cardNetwork,
// Omitted fields ...
})
}
}