PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

सीक्वेलाइज़ अप्सर्ट () कभी अपडेट नहीं होता और केवल इंसर्ट करता है

अपने upsert() उदाहरण में आप id प्रदान नहीं कर रहे हैं अप्सर्ट विधि में प्रवेश के लिए। इसका मतलब है कि अगली कड़ी आईडी . से मेल नहीं खा सकती है एक पंक्ति में (क्योंकि id अपरिभाषित है) और इसलिए यह एक नई पंक्ति सम्मिलित करता है।

यहां तक ​​कि अगर आप किसी भिन्न प्राथमिक कुंजी का उपयोग करते हैं, तो इसका मिलान करने के लिए यह हमेशा एक गुण होना चाहिए क्योंकि सीक्वेलाइज़ किसी मौजूदा पंक्ति को खोजने के लिए प्राथमिक कुंजी का उपयोग करता है।

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. पांडा to_sql में 'अनपेक्षित कीवर्ड तर्क' लाने 'त्रुटि का स्रोत?

  2. Postgresql में गतिशील रूप से जेनरेट किया गया कर्सर

  3. पोस्टग्रेज:कई-से-अनेक बनाम एकाधिक कॉलम बनाम सरणी कॉलम

  4. Postgresql में पूर्णांक कैसे एकत्रित करें?

  5. org.postgresql.util.PSQLException:ऑटो-प्रतिबद्ध मोड में बड़ी वस्तुओं का उपयोग नहीं किया जा सकता है