2009-04-15 9 views
8

मैं की तरहSQLite, अद्यतन या बदलने के

अद्यतन कुछ करना या someTable सेट एक = 1 REPLACE, ख = 2 जहाँ c = 3

मैं उम्मीद करता है, तो यह does not यह अस्तित्व में डीबीएस में सम्मिलित किया जाएगा। लेकिन कुछ भी नहीं होता है और मुझे कोई त्रुटि नहीं मिलती है। मैं कैसे डेटा सम्मिलित कर सकते हैं, इसे बदलना है, तो यह पहले से ही मौजूद हैं और

उत्तर

16

सावधान, सम्मिलित करें या बदलने की जरूरत नहीं है "अद्यतन या स्थान" का अपेक्षित व्यवहार।

यदि आप सभी fieds के लिए मान निर्धारित नहीं करते हैं, तो INSERT या REPLACE उन्हें डिफ़ॉल्ट मानों के साथ प्रतिस्थापित करने जा रहा है, जबकि एक अद्यतन के साथ आप पुराने मान रखने की उम्मीद करते हैं।

मेरे उत्तर यहां एक उदाहरण के लिए देखें: SQLite - UPSERT *not* INSERT or REPLACE

9

(बजाय एक अद्वितीय ID की ईसा पूर्व की जगह) हालत के लिए एक जहां का उपयोग का प्रयास करें

INSERT OR REPLACE INTO [someTable] (a,b) VALUES(1,2) WHERE c = '3' 
+3

यह वाक्यविन्यास मान्य नहीं है। डालने के लिए https://www.sqlite.org/lang_insert.html पर विचार करें, और चुनने के लिए https://www.sqlite.org/lang_select.html पर विचार करें। मूल्यों (...) के बाद कोई भी खंड जोड़ा जा सकता है। –

संबंधित मुद्दे