PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Sekuel upsert() tidak pernah memperbarui dan hanya menyisipkan

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql 11:Kesalahan panggilan Prosedur Tersimpan - Untuk memanggil prosedur, gunakan CALL, Java

  2. dblink tidak menggunakan file .pgpass

  3. Masalah dengan wadah buruh pelabuhan postgresql dan pgadmin

  4. Mengapa PostgreSQL memanggil fungsi STABLE/IMMUTABLE saya beberapa kali?

  5. Sekuel cara menggunakan tabel asosiasi?