편집 : 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에서 되돌려 져서이를 설명합니다. 버전을 확인하십시오.
—
Michael-sqlbot
mysql-5.7.8-rc-osx10.9-x86_64.dmg
—
Chris Muench 5
다른 문제로 편집 내용을 게시했습니다. 이것은 MySQL은 5.7.8와 실제 문제처럼 보인다
—
크리스 MUENCH에게
5.7.8 릴리스 정보를 자세히 검토 하면 한 가지 변경 사항이 되돌려졌지만
—
Michael-sqlbot 2016 년
NO_ZERO_DATE
이제 기본 구성의 일부인 을 제거해야 할 수도 있습니다. 확인 할수 있어요? 하십시오 SELECT @@SQL_MODE;
.
예, 모드를 변경했으며 작동했습니다. mysql 5.7이 추가하여 많은 문제가 발생하여 모드를 ""로 설정했습니다. 이것은 많은 변경 사항이있는 꽤 큰 업데이트처럼 보입니다.
—
Chris Muench