2009-11-20 12 views
50

मेरे पास timestamp के कॉलम वाला एक टेबल है जो current_timestamp को डिफ़ॉल्ट करता है और प्रत्येक अपडेट पर current_timestamp पर अपडेट करता है।मैं एक mysql तालिका कॉलम डिफ़ॉल्ट कैसे बदलूं?

मैं इस कॉलम पर "अपडेट पर" सुविधा को हटाना चाहता हूं। मैं परिवर्तन कथन कैसे लिखूं?

ALTER TABLE mytable alter column time set DEFAULT now(); 

लेकिन यह काम नहीं किया:

मैं निम्नलिखित की कोशिश की।

+0

क्या आप वाकई इसे अपडेट करने के लिए ट्रिगर का उपयोग नहीं कर रहे हैं? –

+0

यह प्रश्न StackExcange पर माइग्रेट करना चाहिए: डेटाबेस प्रशासक –

उत्तर

75

पीट लगभग सही था (बचने और क्षेत्र नाम का दूसरा उपयोग जोड़ने के लिए संपादित) लेकिन 'परिवर्तन' के लिए गलत वाक्य रचना का प्रयोग किया:

ALTER TABLE mytable CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

सूचना कि आपको कॉलम नाम दोहराना होगा। साथ ही, सुनिश्चित करें कि आप कॉलम नाम समय से बचने के लिए सिंगल कोट्स के बजाय बैकटिक्स का उपयोग कर रहे हैं, जो इसे माइस्क्ल कॉलम प्रकार के रूप में व्याख्या करने से रोकता है।

CURRENT_TIMESTAMP के DEFAULT को निर्दिष्ट करके, MySQL अब कॉलम को स्वचालित रूप से अपडेट नहीं करेगा। MySQL Manual से:

एक डिफ़ॉल्ट CURRENT_TIMESTAMP खंड के साथ

और कोई अद्यतन खंड पर, स्तंभ को उसके डिफ़ॉल्ट मान के लिए वर्तमान टाइमस्टैम्प है, लेकिन अपने आप अपडेट नहीं किया गया है।

9

आप AFAIK को डिफ़ॉल्ट रूप से NOW() जैसे कार्यों का उपयोग नहीं कर सकते हैं।

प्रयास करें

ALTER TABLE `mytable` CHANGE `time` `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

+0

निम्न मिला: mysql> वैकल्पिक तालिका संदेश बदलें समय TIMEAMAMT पूर्ण DEFAULT CURRENT_TIMESTAMP नहीं; ERROR 1064 (42000): आपको अपने SQL वाक्यविन्यास में कोई त्रुटि है; लाइन 1 mysql पर 'नॉट डिफॉल्ट CURRENT_TIMESTAMP' के पास उपयोग करने के लिए सही वाक्यविन्यास के लिए आपके MySQL सर्वर संस्करण से मेल खाने वाले मैन्युअल की जांच करें> वैकल्पिक तालिका संदेश कॉलम समय बदलें TIMESTAMP पूर्ण डिफॉल्ट CURRENT_TIMESTAMP नहीं; ERROR 1064 (42000): आपको अपने SQL वाक्यविन्यास में कोई त्रुटि है; लाइन 1 – Tihom

+0

पर 'नॉट डिफॉल्ट CURRENT_TIMESTAMP' के पास उपयोग करने के लिए सही वाक्यविन्यास के लिए आपके MySQL सर्वर संस्करण से मेल खाने वाले मैन्युअल की जांच करें क्षमा करें, भागने के लिए क्षमा करें, और फ़ील्ड का नाम दो बार आता है। – Pete

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