zaman damgası alanı için geçersiz varsayılan değer (mysql 5.7)


10

EDIT: mysql 5.6 varolan bir veritabanını güncelleştirirken ve yürütürken:

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

Bu şunu üretir:

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

Bu mysql <= 5,7'de çalıştı. Bununla ilgili herhangi bir belge bulamadım ... Sorun nedir?

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
Bu sorun olup , ilk belgelenmiş ... ama hangi sürüm (5.7 bugün itibariyle henüz GA olduğundan, özellikle ilgili) Kullandığınız MySQL 5.7? ve 5.7.4'te getirilen ve 5.7.8'de geri döndürülen, bunu açıklayacak kötü tasarlanmış bir değişiklik vardı. Lütfen sürümünüzü onaylayın.
Michael - sqlbot

mysql-5.7.8-rc-osx10.9-x86_64.dmg
Chris Muench

Başka bir sorunla düzenleme yayınladım. Bu mysql 5.7.8 ile gerçek bir sorun gibi görünüyor
Chris Muench

2
5.7.8 sürüm notlarının daha ayrıntılı incelemesi, bir değişikliğin geri alındığını, ancak NO_ZERO_DATEartık varsayılan yapılandırmanın bir parçası olan kaldırmanız gerekebileceğini göstermektedir . Onaylayabilir misin? Lütfen SELECT @@SQL_MODE;.
Michael - sqlbot

Evet modu değiştirdim ve bu işe yaradı. Ben mysql 5.7 ekledi bir şey buldum hangi sorun neden bu yüzden modu ayarlamak ""; Bu, birçok değişiklik içeren oldukça büyük bir güncelleme gibi görünüyor.
Chris Muench

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.