अमान्य डिफ़ॉल्ट मान (mysql 5.7) टाइमस्टैम्प क्षेत्र के लिए


10

संपादित करें: जब mysql 5.6 से मौजूदा डेटाबेस को अपडेट करते हैं और निष्पादित करते हैं:

UPDATE phppos_register_log SET shift_end = '2015-01-01 00:00:00' WHERE shift_end = '0000-00-00 00:00:00';

यह उत्पादन करता है:

#1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'shift_end' at row 1
#1067 - Invalid default value for 'shift_start' 

इसने mysql <= 5.7 में काम किया। मुझे इस बारे में कोई दस्तावेज नहीं मिला ... इस बारे में क्या समस्या है?

CREATE TABLE `phppos_register_log` (
      `register_log_id` int(10) NOT NULL AUTO_INCREMENT,
      `employee_id_open` int(10) NOT NULL,
      `employee_id_close` int(11) DEFAULT NULL,
      `register_id` int(11) DEFAULT NULL,
      `shift_start` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      `shift_end` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      `open_amount` decimal(23,10) NOT NULL,
      `close_amount` decimal(23,10) NOT NULL,
      `cash_sales_amount` decimal(23,10) NOT NULL,
      `total_cash_additions` decimal(23,10) NOT NULL DEFAULT '0.0000000000',
      `total_cash_subtractions` decimal(23,10) NOT NULL DEFAULT '0.0000000000',
      `notes` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `deleted` int(1) NOT NULL DEFAULT '0',
      PRIMARY KEY (`register_log_id`),
      KEY `phppos_register_log_ibfk_1` (`employee_id_open`),
      KEY `phppos_register_log_ibfk_2` (`register_id`),
      KEY `phppos_register_log_ibfk_3` (`employee_id_close`),
      CONSTRAINT `phppos_register_log_ibfk_1` FOREIGN KEY (`employee_id_open`) REFERENCES `phppos_employees` (`person_id`),
      CONSTRAINT `phppos_register_log_ibfk_2` FOREIGN KEY (`register_id`) REFERENCES `phppos_registers` (`register_id`),
      CONSTRAINT `phppos_register_log_ibfk_3` FOREIGN KEY (`employee_id_close`) REFERENCES `phppos_employees` (`person_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

1
इस मुद्दे को प्रलेखित किया गया है ... लेकिन सबसे पहले, MySQL 5.7 की कौन सी रिलीज़ का उपयोग कर रहे हैं (विशेष रूप से प्रासंगिक, क्योंकि 5.7 अभी तक GA नहीं है)? और 5.7.4 में एक गलत कल्पना की गई थी जिसे 5.7.8 में वापस लाया गया था, जो इसे समझाएगा। कृपया अपने संस्करण की पुष्टि करें।
माइकल - sqlbot

mysql-5.7.8-rc-osx10.9-x86_64inosg
क्रिस

मैंने एक और मुद्दे के साथ एक संपादन पोस्ट किया। यह mysql 5.7.8 के साथ एक वास्तविक मुद्दे की तरह लगता है
क्रिस

2
5.7.8 जारी नोटों की आगे की समीक्षा बताती है कि एक परिवर्तन वापस कर दिया गया था, लेकिन आपको इसे हटाने की आवश्यकता हो सकती है NO_ZERO_DATE, जो अब डिफ़ॉल्ट कॉन्फ़िगरेशन का हिस्सा है। क्या आप पुष्टि कर सकते हैं? कृपया SELECT @@SQL_MODE;
माइकल - sqlbot

हां मैंने मोड बदल दिया और वह काम कर गया। मुझे बहुत सी चीज़ें मिलीं mysql 5.7 जो कि समस्या का कारण बनी इसलिए मैंने "" के लिए मोड सेट किया; यह बहुत सारे बदलावों के साथ एक बहुत बड़े अपडेट की तरह लगता है।
क्रिस मुंच

जवाबों:


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