PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Sequelize upsert() никога не актуализира и само вмъква

Във вашия пример upsert() вие не предоставяте id на влизане в метода upsert. Това означава, че секвелизирането не може да съответства на id към ред (тъй като id е недефиниран) и следователно вмъква нов ред.

Дори ако използвате различен първичен ключ, той винаги трябва да е свойство, за да съвпада, тъй като sequelize използва първичния ключ за търсене на съществуващ ред.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да се предоставят параметри за името на таблица или колона в Prepared Statements или QueryRunner.update()?

  2. Какво е новото в PostgreSQL 13?

  3. Не може да се инсталира pg gem в Mavericks с Postgres.app

  4. Моделиране на големи обекти на PostgreSQL в Rails

  5. Как да търся диапазон от цели числа в PostgreSQL?