यद्यपि एक स्वीकृत उत्तर है, मुझे नहीं लगता कि यह सही है। यह सबसे आसान तरीका है जिसे हासिल करने की आवश्यकता है, लेकिन यहां तक कि अगर पहले से ही InnoDB में सक्षम है (वास्तव में डॉक्स आपको बताते हैं कि आपको अभी भी NULL मिलना चाहिए ...), यदि आप MySQL डॉक्स पढ़ते हैं, तो भी वर्तमान संस्करण (8.0) में UPD_TIME का उपयोग किया जा रहा है सही विकल्प नहीं, क्योंकि:
सर्वर रिस्टार्ट होने पर या जब InnoDB डेटा डिक्शनरी कैश से टेबल को निकाला जाता है तो टाइमस्टैम्प्स कायम नहीं रहते हैं।
अगर मैं सही तरीके से समझता हूं (इसे अभी सर्वर पर सत्यापित नहीं किया जा सकता है), सर्वर रिस्टार्ट होने के बाद टाइमस्टैम्प रीसेट हो जाता है।
वास्तविक (और, अच्छी तरह से, महंगा) समाधानों के लिए, आपके पास CURRENT_TIMESTAMP के साथ बिल कारविन का समाधान है और मैं एक अलग प्रस्ताव देना चाहूंगा, जो ट्रिगर्स पर आधारित है (मैं उस एक का उपयोग कर रहा हूं)।
आप एक अलग तालिका बनाकर शुरू करते हैं (या हो सकता है कि आपके पास कुछ अन्य तालिका हो जो इस उद्देश्य के लिए उपयोग की जा सकती हैं) जो वैश्विक चर (यहां टाइमस्टैम्प) के लिए भंडारण की तरह काम करेंगी। आपको दो फ़ील्ड्स संग्रहीत करने की आवश्यकता है - टेबल का नाम (या टेबल आईडी के रूप में आप यहां जो भी मूल्य रखना चाहते हैं) और टाइमस्टैम्प। आपके पास यह होने के बाद, आपको इसे इस तालिका आईडी + प्रारंभिक तिथि (अब () एक अच्छा विकल्प है :)) के साथ प्रारंभ करना चाहिए।
अब, आप उन तालिकाओं पर जाते हैं जिन्हें आप निरीक्षण करना चाहते हैं और इस तरह की प्रक्रिया के साथ INSERT / UPDATE / DELETE में ट्रिगर जोड़ते हैं:
CREATE PROCEDURE `timestamp_update` ()
BEGIN
UPDATE `SCHEMA_NAME`.`TIMESTAMPS_TABLE_NAME`
SET `timestamp_column`=DATE_FORMAT(NOW(), '%Y-%m-%d %T')
WHERE `table_name_column`='TABLE_NAME';
END