contatti
contacts

mysql no_zero_date

mysql version 5.1

Per non avere valori zero nei campi di tipo date, si imposta il parametro sql_mode :
sql_mode="no_zero_date,strict_all_tables"

Per esempio definisco una tabella definita con una sola colonna di tipo date :
create table table1 (field1 date);
L' inserimento del valore zero va in errore :
insert into table1 (field1) values (0);
ERROR 1292 (22007): Incorrect date value: '0' for column 'field1' at row 1

Per caricare i dati da una tabella di un altro database mysql uso l' utility mysqldump
So che le tabelle sono uguali come struttura (un solo campo di tipo date)
e che i valori della tabella di origine contengono zero perche'
risiede in un database mysql dove non si e' impostata alcuna limitazione (sqlmode="")
Quando cerco di caricare il file prodotto da mysqldump, mi aspetto di trovare errori
perche' mysql e' configurato con
sql_mode="no_zero_date,strict_all_tables"
Invece il caricamento va bene e vengono inseriti valori zero nel campo di tipo date

Il problema e' dovuto all' impostazione SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO'
che si trova nelle prime linee del file prodotto da mysqldump :
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

simplesix