'DateAdded' के लिए अमान्य डिफ़ॉल्ट मान


90

मुझे एसक्यूएल के साथ एक बेवकूफ समस्या मिली जिसे मैं ठीक नहीं कर सकता।

अन्य समाचार `समाचार` 
 जोड़ें
 ADD PRIMARY KEY (`dateAdded`)

त्रुटि:

(#1067)Invalid default value for 'dateAdded'

क्या कोई मेरी मदद कर सकता है?


8
यह एक बेवकूफ सवाल हो सकता है, लेकिन आप क्यों करते हैं AUTO_INCREMENT DATETIME?
jave.web

जवाबों:


137

CURRENT_TIMESTAMPTIMESTAMPखेतों पर ही स्वीकार्य है । DATETIMEफ़ील्ड को एक डिफ़ॉल्ट मान के साथ या तो छोड़ दिया जाना चाहिए, या कोई डिफ़ॉल्ट मान बिल्कुल भी नहीं होना चाहिए - डिफ़ॉल्ट मान एक स्थिर मान होना चाहिए, न कि एक अभिव्यक्ति का परिणाम।

प्रासंगिक डॉक्स: http://dev.mysql.com/doc/refman/5.0/en/data-type-defa.net.html

आप किसी भी नए रिकॉर्ड पर "अब" मान भरने के लिए मेज पर पोस्ट-इंसर्ट ट्रिगर स्थापित करके इसके चारों ओर काम कर सकते हैं।


70
यह mysql 5.6.5 जैसा दिखता है, आप DATETIME फ़ील्ड के साथ CURRENT_TIMESTAMP का उपयोग कर सकते हैं। Dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
फ्रैंक

2
धन्यवाद फ्रैंक, इस समस्या को पाया जब एक पहले के लिए नवीनतम xampp से एक निर्यात DB आयात करने की कोशिश कर रहा है।
HCD

HCD, फ्रैंक ... मारियाडीबी 10.x से मारियाबीडी 5.5 तक निर्यात करते हुए एक ही मुद्दा पाया गया ... धन्यवाद
आकांक्षा

1
यह त्रुटि mariadb 5.5 में भी होती है। 10 और उसके हल mariadb को अपग्रेड करें। धन्यवाद फ्रैंक
सैमुअल टेस्लर


16

जब निर्दिष्ट करने भी ध्यान रखने कर DATETIMEके रूप में DATETIME(3)या MySQL 5.7.x पर की तरह, आप भी के लिए एक ही मूल्य जोड़ने के लिए CURRENT_TIMESTAMP(3)। यदि नहीं, तो यह ' अमान्य डिफ़ॉल्ट मान ' को फेंकता रहेगा ।


इसने मेरे लिए 5.7.x पर समस्या हल कर दी। मेरे डेटाटाइम क्षेत्रों को डेटाइमटाइम (6) के रूप में परिभाषित किया गया था और CURRENT_TIMESTAMP (6) के उपयोग से समस्या हल हुई
ब्रैड

यह अत्यधिक ध्यान देने योग्य है।
मेटुस फेलिप

1

मेरे पास एक ही मुद्दा था, ठीक होने के बाद मेरी समस्या हल हो गई।

  • प्रकार चुनें 'TIMESTAMP'

  • LENGTH / VALUES FIELD में कुछ भी दर्ज न करें। KEEP IT BLANK

  • डिफ़ॉल्ट मान के रूप में CURRENT_TIMESTAMP चुनें।

मैं MySQL ver 5.5.56 का उपयोग कर रहा हूं



0

mysql संस्करण 5.5 सेट डेटाइम डिफ़ॉल्ट मान के रूप में CURRENT_TIMESTAMP रिपोर्ट त्रुटि होगी जिसे आप संस्करण 5.6 में अपडेट कर सकते हैं, यह डेटटाइम डिफ़ॉल्ट मान CURRENT_TIMESTAMP के रूप में सेट करता है


0

डेटाइम से टाइप को टाइमस्टैम्प में बदलें और यह काम करेगा! मैं mysql 5.5.56-MariaDB के लिए एक ही मुद्दा था - MariaDB सर्वर आशा है कि यह मदद कर सकता है ... माफ करना

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.