Eroare la introducerea datelor in mysql: invalid default value for datetime 0000-00-00 00:00:00

0

invalid default value for datetime 0000-00-00 00:00:00

Eroare la introducerea datelor in mysql: invalid default value for datetime 0000-00-00 00:00:00
Explicatii si istoria problemei:
Exista 3 sql_modes care declanseaza erroarea, facand disable la posibilitatea de a seta o data cu valoarea 0.

NO_ZERO_DATE
NO_ZERO_IN_DATE
TRADITIONAL

Iata solutia:

Ruleaza aceasta linie in SQL:

SELECT @@GLOBAL.sql_mode;

Aceasta comanda poate fi rulata in phpmyadmin sau in orice alt mediu SQL.
Va returna toate sql modes care sunt definite. Va trebui sa le copii pe toate cu exceptia NO_ZERO_DATE, NO_ZERO_IN_DATE, sau TRADITIONAL. Apoi fa un update cu cele ramase.
Ideea este ca trebuie sa inlaturam cele 3 sql modes care ne blocheaza sa punem valoarea 0 la date.

SET @@GLOBAL.sql_mode = “STRICT_TRANS_TABLES,STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO”;

Nu rulati comanda de mai sus! Setati sql mode in functie de ce necesitati are serverul dv! Aceasta este doar un exemplu.
Inca ceva: Nu este acceptat nici un spatiu in definitie!
Daca lucrati local si nu va pasa de sql_modes, puteti sa le stergeti pe toate:

SET @@GLOBAL.sql_mode = “”;

Bafta

Share.

About Author

Comments are closed.