sql >> Database >  >> RDS >> PostgreSQL

Sequelize upsert() wordt nooit bijgewerkt en voegt alleen in

In uw upsert()-voorbeeld geeft u de id . niet op van de invoer in de upsert-methode. Dit betekent dat sequelize niet overeenkomt met de id naar een rij (omdat de id is niet gedefinieerd) en daarom wordt een nieuwe rij ingevoegd.

Zelfs als u een andere primaire sleutel gebruikt, moet deze altijd een eigenschap zijn om te matchen, aangezien sequelize de primaire sleutel gebruikt om naar een bestaande rij te zoeken.

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. mySQL stelt een varchar in zonder de speciale tekens

  2. MySQL INTO OUTFILE overschrijven bestaand bestand?

  3. Probleem met MySQL voor Visual Studio/Visual Studio 2017 Datasource Wizard. Objectverwijzing niet ingesteld op een instantie van een object

  4. Dynamische verbinding met tweede MySQL-database in Ruby on Rails