nilai default tidak valid (mysql 5.7) untuk bidang cap waktu


10

EDIT: Saat memperbarui basis data yang ada dari mysql 5.6 dan menjalankan:

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

Ini menghasilkan:

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

Ini berfungsi di mysql <= 5.7. Saya tidak dapat menemukan dokumentasi tentang ini ... Apa masalah dengan ini?

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
Masalah ini didokumentasikan ... tapi pertama, rilis MySQL 5.7 mana yang Anda gunakan (khususnya relevan, karena 5.7 belum GA hingga sekarang)? dan ada perubahan yang disalahpahami yang diperkenalkan di 5.7.4 yang dikembalikan pada 5.7.8, yang akan menjelaskan hal ini. Harap konfirmasi versi Anda.
Michael - sqlbot

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

Saya memposting hasil edit dengan masalah lain. Ini sepertinya masalah nyata dengan mysql 5.7.8
Chris Muench

2
Tinjauan lebih lanjut dari catatan rilis 5.7.8 menunjukkan bahwa satu perubahan telah dikembalikan, tetapi Anda mungkin perlu menghapus NO_ZERO_DATE, yang sekarang merupakan bagian dari konfigurasi default. Bisakah kamu mengkonfirmasi? Tolong SELECT @@SQL_MODE;.
Michael - sqlbot

Ya saya mengubah mode dan itu berhasil. Saya menemukan banyak hal yang ditambahkan mysql 5.7 yang menyebabkan masalah jadi saya mengatur mode ke ""; ini sepertinya pembaruan yang cukup besar dengan banyak perubahan.
Chris Muench

Jawaban:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.