sql >> Database teknologi >  >> RDS >> PostgreSQL

Sequelize upsert() opdaterer aldrig og indsætter kun

I dit upsert() eksempel angiver du ikke id af optagelsen i upsert-metoden. Dette betyder, at efterfølger ikke kan matche id'et til en række (fordi id er udefineret), og derfor indsætter den en ny række.

Selvom du bruger en anden primær nøgle, skal den altid være en egenskab, for at den kan matche, da sequelize bruger den primære nøgle til at søge efter en eksisterende række.

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 ...
        })
    }
}



  1. Har du en Oracle-tabel navngivet som reserveret ord, hvilke problemer kan der opstå?

  2. MySQL ALTER TABLE hænger

  3. Vælg adskilte rækker, mens du grupperer efter maks. værdi

  4. Databaseunderindstilling – Sådan gør du i IRI Voracity