2011-10-10 7 views
7

मेरे पास एक तालिका में एक कॉलम update_date है और टाइप टाइमस्टैम्प है। मैंने phpmyadmin ड्रॉप डाउन मेनू का उपयोग CURRENT_TIMESTAMP पर कर डॉल्ट वैल्यू सेट किया है। लेकिन बाद में जब भी मैं एसक्यूएल अद्यतन एक्स सेट चलाता हूं ... यह टाइमस्टैम्प कॉलम अपडेट करता है यदि केवल कॉलम में कोई बदलाव होता है। मैं जो हासिल करना चाहता हूं वह यह है कि क्या कोई बदलाव है या अद्यतन एसक्यूएल हर बार चालू समय निर्धारित नहीं करता है। क्या mysql में ऐसा करने का कोई तरीका है या मुझे अपडेट_डेट को अपडेट होने पर हर बार स्पष्ट रूप से सेट करने की आवश्यकता है?MYSQL टाइमस्टैम्प कॉलम ऑटो अपडेट, भले ही कोई बदलाव न हो?

धन्यवाद

उत्तर

6

आपको कॉलम को स्पष्ट रूप से अपडेट करने की आवश्यकता है।

स्वत: अपडेट TIMESTAMP स्तंभ, अगर वहाँ एक है, स्वचालित रूप से वर्तमान टाइमस्टैम्प को अद्यतन किया जाता है जब पंक्ति में किसी भी अन्य स्तंभ का मूल्य इसके वर्तमान मूल्य से बदल गई है: MySQL मैनुअल, TIMESTAMP properties से। यदि अन्य सभी कॉलम उनके वर्तमान मानों पर सेट हैं, तो TIMESTAMP कॉलम नहीं बदलेगा। स्वचालित अद्यतन तब लागू नहीं होता है जब TIMESTAMP कॉलम को स्पष्ट रूप से NULL के अलावा अन्य मान असाइन किया गया हो।

जोर मेरा।

+0

मेरे पास पंक्ति में केवल एक टाइमस्टैम्प कॉलम है। तो आप कहते हैं कि मुझे डिफ़ॉल्ट मान को शून्य में बदलना चाहिए और फिर एसक्यूएल चलाने पर हर बार इसे स्पष्ट रूप से अपडेट करना चाहिए या मैं डिफ़ॉल्ट प्रकार को CURRENT_TIMESTAMP के रूप में छोड़ सकता हूं? – akd

+1

दूसरी बात यह है कि जब मैं इस कोड को चलाता हूं तो "mysql_query से अद्यतन x SET update_date = Now()" अपडेट नहीं किया जाता है? कारण क्या होगा? – akd

+0

बहुत उपयोगी और मुश्किल टिप! –

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