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

मैं किसी फ़ील्ड के डिफ़ॉल्ट मान को '0000-00-00 00:00:00' के रूप में कैसे सेट कर सकता हूं?

त्रुटि का कारण:SQL मोड

आप DATE . का डिफ़ॉल्ट मान सेट कर सकते हैं , DATETIME या TIMESTAMP यदि sql मोड इसकी अनुमति देता है, तो डमी तिथि के रूप में '0000-00-00' के विशेष "शून्य" मान के लिए फ़ील्ड। 5.7.4 से कम के MySQL संस्करणों के लिए यह NO_ZERO_DATE मोड द्वारा शासित है, दस्तावेज़ीकरण :

इसके अतिरिक्त "शून्य" मानों को अस्वीकार करने के लिए सख्त मोड को सक्षम करना होगा:

MySQL 5.7.4<के अनुसार /ए> यह केवल सख्त मोड पर निर्भर करता है:

संस्करण और SQL मोड जांचें

इसलिए आपको अपने MySQL संस्करण और SQL मोड<की जांच करनी चाहिए। /ए> आपके MySQL सर्वर के साथ

SELECT version();
SELECT @@GLOBAL.sql_mode global, @@SESSION.sql_mode session

INSERT सक्षम करें

आप SET sql_mode = '<desired mode>' के साथ अपने सत्र के लिए sql_mode सेट कर सकते हैं

SET sql_mode = 'STRICT_TRANS_TABLES';   

DATETIME के ​​लिए मान्य सीमा

DATETIME . के लिए समर्थित श्रेणी है

[1000-01-01 00:00:00] to ['9999-12-31 23:59:59'], 

इसलिए न्यूनतम मान्य DATETIME मान '1000-01-01 00:00:00' है।
हालांकि मैं इस मान का उपयोग करने की अनुशंसा नहीं करूंगा।

अतिरिक्त नोट

चूंकि MySQL 5.6.5 सभी TIMESTAMP और DATETIME कॉलम में जादुई व्यवहार हो सकता है (प्रारंभ करना और/या अद्यतन करना), न केवल TIMESTAMP और अधिक से अधिक केवल एक कॉलम, देखें के लिए स्वचालित प्रारंभ और अद्यतन TIMESTAMP और DATETIME :

आप MySQL 5.6.5 या नए के मामले में अपना टेबल बनाएं स्टेटमेंट बदल सकते हैं:

CREATE TABLE IF NOT EXISTS `article` (
  `article_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `url` VARCHAR(255) NOT NULL,
  `title` VARCHAR(255) NOT NULL,
  `date_from` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Set the article as new or featured from a datetime.',
  `date_to` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Set the article as new or featured to a datetime.',
  `backdated_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'The manual datetime that is modified or input by the user.',
  `created_on` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'The permanent datetime when the article is created.',
  `updated_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'The datetime when the article is updated on.',
  PRIMARY KEY (`article_id`, `parent_id`, `template_id`),
  UNIQUE INDEX `url_UNIQUE` (`url` ASC))
ENGINE = MyISAM
AUTO_INCREMENT = 66
COMMENT = 'Entity that holds the article with one-to-one properties.';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. >90 दिन पुरानी पंक्तियों को हटाने के लिए ट्रिगर बनाएं

  2. MySQL क्वेरी में LIMIT के साथ SELECT का उपयोग करते समय सभी पंक्तियों को कैसे गिनें?

  3. MySQL में ENUM (गणना) डेटा प्रकार:शीर्ष 12 तथ्य और उपयोगी टिप्स

  4. MySQL के साथ कॉलम नामों में रिक्त स्थान

  5. MySQL Group By प्रत्येक प्रकार के शीर्ष N नंबर के साथ