Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

तालिका में परिवर्तन नहीं कर सकता, त्रुटि हो रही है 1067 अमान्य डिफ़ॉल्ट मान

sql_mode और 'NO_ZERO_DATE' पर कुछ पृष्ठभूमि:https:// dev.mysql.com/doc/refman/5.1/hi/sql-mode.html

आपने उल्लेख किया है कि आपने किसी अन्य सर्वर से तालिकाओं को पुनर्स्थापित किया है। यदि आपने mysqldump का उपयोग किया है तो आपके प्रश्न का उत्तर यह है कि डंप किए गए SQL को लोड करते समय mysql ने 'NO_ZERO_DATE' मोड को बंद कर दिया। Mysqldump (5.5 में परीक्षण किया गया) इस लाइन को डंप किए गए SQL के शीर्ष पर रखता है:

/*!40101 SET @example@sqldat.com@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

यह डंप लोड करते समय विदेशी कुंजी जांच और अन्य उपयोगी चीजों को भी बंद कर देता है।

/*!40014 SET @example@sqldat.com@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @example@sqldat.com@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

यह बताता है कि आप तालिकाओं को पुनर्स्थापित करने में सक्षम क्यों थे, लेकिन जब आप बदलने की कोशिश कर रहे हों तो आपको कड़े नियमों से खेलना होगा। यदि आप वास्तव में इसे ओवरराइड करना चाहते हैं, तो आप अपनी परिवर्तन तालिका के ठीक पहले निम्न को आज़मा सकते हैं:

mysql> SET SESSION sql_mode='';

फिर तालिका बदलें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं बंडलर नहीं चला सकता, त्रुटि प्राप्त करते रहें

  2. रैंडम PHP FastCGI/पीयर/अपूर्ण हेडर द्वारा कनेक्शन रीसेट

  3. डेटाबेस खोजने के लिए PHP में एक खोज फ़ॉर्म बनाना?

  4. सिंटैक्स से इस SQL ​​​​DELETE में क्या गलत है?

  5. COUNT(*) के अवरोही क्रम में सूचीबद्ध पंक्तियों को कैसे वापस करें?