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

मैं रूम डेटाबेस एंड्रॉइड में मूल्य कैसे जोड़ सकता हूं?

अपने दाओ में अगली विधि जोड़ने का प्रयास करें:

@Query("UPDATE sum SET value = value + :addValue WHERE id =:id")
suspend fun updateSum(id: Int, addValue: Long)

फिर आप इसे अपने व्यूमोडेल/गतिविधि से कॉल कर सकते हैं

अपडेट करें

अद्यतन/सम्मिलित करने के लिए एकल विधि के लिए इन विधियों को dao में रखें:

@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertSum(model: Sum)

@Query("UPDATE sum SET value = value + :value WHERE id = :id")
suspend fun updateSum(id: Int, value: Long)

@Query("SELECT * FROM sum WHERE id = :id")
suspend fun getSumById(id: Int): Sum?

@Transaction
suspend fun updateOrInsertSum(sum: Sum) { // <-- this method updates value or insert new item, if id is not found
    getSumById(sum.id)?.let { updateSum(sum.id, sum.value) } ?: insertSum(sum)
}

बेशक आपको विधि जोड़नी चाहिए updateOrInsertSum अपने भंडार और व्यूमॉडल में भी फिर यदि आप पहली बार id ='1' के लिए कॉल करते हैं तो मान डाला जाएगा:

viewmodel.updateOrInsertSum(Sum(1 ,10000)) // <-- id = 1, value = 10000

अगली कॉल पर आइटम को उसी विधि से अपडेट किया जाएगा:

viewmodel.updateOrInsertSum(Sum(1 ,20000)) // <-- id = 1, value = 10000+2000 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 सबसे लगातार मूल्य/होने वाली आईडी प्राप्त करें?

  2. MySQL नमूना डेटाबेस

  3. MySQL एक सम्मिलित तालिका को अद्यतन करता है

  4. एकल तालिका के भीतर SQL समय अंतर

  5. SQLAlchemy का उपयोग करके दो डेटाबेस में तालिकाओं में शामिल हों