giá trị mặc định không hợp lệ (mysql 5.7) cho trường dấu thời gian


10

EDIT: Khi cập nhật cơ sở dữ liệu hiện có từ mysql 5.6 và thực thi:

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

Điều này tạo ra:

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

Điều này đã làm việc trong mysql <= 5.7. Tôi không thể tìm thấy bất kỳ tài liệu nào về việc này ... Vấn đề với cái này là gì?

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
Vấn đề này được ghi lại ... nhưng trước tiên, bạn đang sử dụng bản phát hành MySQL 5.7 nào (đặc biệt có liên quan, vì 5.7 chưa phải là GA như bây giờ)? và có một thay đổi không rõ ràng được giới thiệu trong 5.7.4 được hoàn nguyên trong 5.7.8, điều đó sẽ giải thích điều này. Vui lòng xác nhận phiên bản của bạn.
Michael - sqlbot

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

Tôi đã đăng một chỉnh sửa với một vấn đề khác. Đây có vẻ như là một vấn đề thực sự với mysql 5.7.8
Chris Muench

2
Đánh giá thêm về ghi chú phát hành 5.7.8 cho thấy rằng một thay đổi đã được hoàn nguyên, nhưng bạn có thể cần phải xóa NO_ZERO_DATE, hiện là một phần của cấu hình mặc định. Bạn có thể xác nhận? Xin vui lòng SELECT @@SQL_MODE;.
Michael - sqlbot

Có, tôi đã thay đổi chế độ và điều đó đã làm việc. Tôi đã tìm thấy rất nhiều thứ mysql 5.7 được thêm vào gây ra sự cố nên tôi đặt chế độ thành ""; Đây có vẻ là một bản cập nhật khá lớn với rất nhiều thay đổi.
Chris Muench

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.