2012-03-01 11 views
10

करने के लिए "अद्यतन वर्तमान टाइमस्टैम्प पर" जोड़ने के लिए स्तंभ का कहना है कि MYSQL में डेटाप्रकार टाइमस्टैम्प और वर्तमान टाइमस्टैम्प के डिफ़ॉल्ट मान के साथ ts_activity है। मैं अद्यतन पर जोड़ना चाहता हूं इस कॉलम मान पर वर्तमान समय टिकट लागू करें।मैं कैसे मौजूदा तालिका स्तंभ

मैं यह करने के लिए परिवर्तन करने के लिए क्वेरी नहीं पा रहा हूँ। नई तालिका और उसके कॉलम को बनाते समय मैं इसे जोड़ सकता हूं, लेकिन अद्यतन पर जोड़कर मौजूदा कॉलम को संशोधित करने में सक्षम नहीं वर्तमान टाइमस्टैम्प लागू करें।

कुछ एक मुझे इस संभाल करने के लिए सटीक क्वेरी बता सकते हैं। क्या हम टेबल बनाने के बाद इसे बदल सकते हैं।

धन्यवाद

उत्तर

9

इस क्वेरी का प्रयास करें -

ALTER TABLE table_name 
    CHANGE COLUMN column_name column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 

ध्यान दें, तालिका में केवल एक क्षेत्र 'पर अद्यतन CURRENT_TIMESTAMP' विकल्प के साथ हो सकता है।

29

देवर्ट का सुझाव काम करेगा, लेकिन अगर मैं कॉलम का नाम नहीं बदल रहा हूं तो CHANGE COLUMN के बजाय MODIFY COLUMN का उपयोग करना पसंद करता हूं।

मैं भी मानते हैं कि आपकी ts_activity स्तंभ नल के बाद से आप एक डिफ़ॉल्ट की जरूरत नहीं है, इसलिए मैं इसे करने के लिए शून्य नहीं स्थापित कर रहा हूँ, लेकिन है कि आप पर निर्भर है।

ALTER TABLE your_table 
    MODIFY COLUMN ts_activity TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 
+1

NULL/नहीं NULL के बारे में सहमत:

यह बयान मैं का उपयोग होता है। इसे पहले निर्दिष्ट किया जाना चाहिए। – Devart

+0

धन्यवाद सब :)। हल किया। – Rahul

+0

एक विशिष्ट समय क्षेत्र में अद्यतन पर 'CURRENT_TIMESTAMP' के मान को कैसे संग्रहीत करें? –

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