Dalam contoh upsert() Anda, Anda tidak memberikan id dari entri ke metode upser. Ini berarti sekuel tidak cocok dengan id ke baris (karena id tidak terdefinisi) dan oleh karena itu ia menyisipkan baris baru.
Bahkan jika Anda menggunakan kunci utama yang berbeda, itu harus selalu menjadi properti untuk dicocokkan karena sekuel menggunakan kunci utama untuk mencari baris yang ada.
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 ...
})
}
}