Problem z importem pliku SQL w MySQL – Incorrect datetime value: 0000-00-00 00:00:00

Chcesz wgrać zrzut bazy danych a tu niemiła niespodzianka:


Może mieć to miejsce na nowszych wersjach MySQL. Jeśli columny określające czas (date, datetime) w tabelach nie mają domyślnej wartości (albo zakazują takich “zerowych” wartości) moga nie przyjmować zrzutu bazy danych w których data jest określona jako:


Dla datetime

lub:


dla date

Błąd może pojawić się przy próbie wgrania zrzutu bazy przez linię komend lub phpmyadmin. Skutkiem błędu jest częściowe wgranie tabel aż do momentu wystąpienia błędu. Czyli masz niepełną bazę MySQL, która raczej nie zadziała tak jak powinna.

Można na szczęście łatwo i szybko poprawić taki plik zrzutu SQL.

Uwaga! Problem tak rozwiążesz jeśli jest to plik tekstowy, jeśli nie – należy go rozpakować do postaci tekstowej.

Wystarczy podmienić wystąpienia błędnych dat w pliku tekstowym. Komenda jest dość sprawna. Łatwo sobie poradzi nawet z plikami zrzutu bazy danych o rozmiarze kilkaset MB:



Oczywiście możesz tam podać datę i godzinę jaką chcesz.

Uwaga, trzeba wykonać oba zapytania aby poprawić oba pola – date i datetime