यह एक अधिक डिज़ाइन प्रश्न हो सकता है, लेकिन यहां जाता है। मैं एक एंड्रॉइड ऐप लिख रहा हूं जो स्थानीय SQLite डेटाबेस (एकाधिक तालिकाओं के साथ) का उपयोग करता है जो हर समय और फिर MySQL डेटाबेस के साथ समन्वयित करता है। मैं केवल अपने डेटाबेस में संशोधित पंक्तियों को अद्यतन करना चाहता हूं। ऐसा करने के लिए, मैं प्रत्येक पंक्ति में "last_modified
" कॉलम जोड़ रहा हूं जो उस पंक्ति को इंगित करता है जब उस पंक्ति को जोड़ा/अपडेट/प्रतिस्थापित/आदि किया गया था।"LastModified" फ़ील्ड को अपडेट करने के लिए SQLite ट्रिगर का उपयोग
मैं डेटाबेस संचालन के लिए नया हूं, लेकिन मैंने देखा है कि एक ट्रिगर ऐसा करने का सबसे अच्छा तरीका हो सकता है। मेरे पास ट्रिगर, SQLite, और एंड्रॉइड से संबंधित कुछ प्रश्न हैं।
मैंने यह लिंक पढ़ा है: on update current_timestamp with SQLite यह मूल रूप से कहता है कि मैं सही दृष्टिकोण का उपयोग कर रहा हूं। मेरे प्रश्न हैं:
- मुझे
db.execSQL("CREATE TRIGGER...")
कथन कहां रखा जाना चाहिए? टेबल बनाने से पहले या बाद में? - क्या मैं अपने डेटाबेस में प्रत्येक तालिका के लिए एक ही ट्रिगर का उपयोग कर सकता हूं? यानी, ट्रिगर स्वचालित रूप से पता लगा सकता है कि कौन सी तालिका और पंक्ति अपडेट/डाली/प्रतिस्थापित/आदि जा रही है। और उस पंक्ति के "
last_modified
" फ़ील्ड को सेट करने के लिए अधिसूचित करें, या क्या मुझे प्रत्येक तालिका के लिए एक अलग ट्रिगर बनाना है? - चूंकि मैं डेटाबेस संचालन के लिए काफी नया हूं, क्या आप एंड्रॉइड ट्रिगर स्टेटमेंट प्रदान कर सकते हैं जो उपर्युक्त व्यवहार करता है, या उदाहरण के लिए संसाधन प्रदान करता है?
या यदि ट्रिगर्स एक बुरा विचार है, तो क्या कोई बेहतर विकल्प हैं?
धन्यवाद।
शानदार लग रहा है! धन्यवाद। तो आपके उदाहरण में, "TIME" आपका "last_modified" फ़ील्ड है, और "आईडी" प्रत्येक पंक्ति के लिए केवल प्राथमिक_आईडी फ़ील्ड है? – jmhend
एक और सवाल। क्या अद्यतन करने और INSERTING दोनों पर एक ही ट्रिगर समर्थन ट्रिगर करने का कोई तरीका है? – jmhend
या INSERTING के लिए ट्रिगर होने की बजाय, "last_modified" के लिए केवल DEFAULT मान होने पर CURRENT_TIMESTAMP हो, आह? – jmhend