2009-12-26 4 views
12

मैं एक मेज है कि इसक्या sqlite3 स्वचालित रूप से 'अपडेटेड_ऑन' डेटाटाइम फ़ील्ड को अपडेट करने के लिए ट्रिगर का समर्थन करता है?

user_id | name | created_on | updated_on 
-------------------------------------------------- 
1   | Peter D | 1/1/2009  | 

तरह लग रहा है अगर मैं डालने या एक रिकार्ड अद्यतन करते हैं, मैं ('अब') दिनांक के साथ updated_on क्षेत्र अद्यतन करने के लिए एक ट्रिगर करना चाहते हैं। लेकिन मुझे sqlite3 में सबसे हाल ही में अद्यतन पंक्ति को लक्षित करने के लिए फ़ंक्शन नाम नहीं मिल रहा है। क्या कोई है?

+0

http://www.sqlite.org/lang_createtrigger.html –

+0

धन्यवाद हसन, मुद्दा यह है कि मैं नहीं sqlite3 में अंतिम अपडेट पंक्ति को लक्षित करने के लिए एक ट्रिगर के भीतर से एक तरह से प्राप्त कर सकते हैं, है। मैं किसी अन्य ट्रिगर में 'last_insert_rowid()' का उपयोग करता हूं। लेकिन मैं 'last_update_rowid()' ढूंढ रहा हूं और ऐसा कुछ भी नहीं ढूंढ सकता। –

+0

@DougCurrie द्वारा प्रदान किया गया उत्तर वास्तव में अच्छा काम करता है! यह एक पिटी है कि SQLite दस्तावेज इतना स्पष्ट नहीं है [ट्रिगर SQLite बनाएं] (http://www.sqlite.org/lang_createtrigger.html) – Caumons

उत्तर

24
CREATE TRIGGER your_table_trig AFTER UPDATE ON your_table 
BEGIN 
    update your_table SET updated_on = datetime('now') WHERE user_id = NEW.user_id; 
END; 
+0

एक आकर्षण की तरह काम किया! धन्यवाद। –

+0

यदि यह आपके प्रश्न का उत्तर देता है तो उत्तर के बगल में स्थित चेकमार्क पर क्लिक करके उत्तर को "स्वीकार करें" पर प्रथागत है। –

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

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