MySQL, Server SQL Modes

El servidor MySQL puede funcionar en distintos modos SQL, y puede aplicar estos modos de forma diferente para diferentes clientes, en función del valor de la variable de sistema sql_mode. DBA pueden ajustar el modo global de SQL para que coincida con los requisitos operativos de servidor web, y cada aplicación puede establecer el modo de sesión de SQL para sus propias necesidades.

Modos afectan la sintaxis SQL soporta MySQL y las comprobaciones de validación de datos que realiza. Esto hace que sea más fácil de usar MySQL en distintos entornos y usar MySQL junto con otros servidores de bases de datos.

 

Si tienes una tabla en la que por defecto tienes '0000-00-00 00:00:00', en el modo estrictio no te permite crear esta tabla.

A partir de la referencia: NO_ZERO_DATE - En modo estricto, no permitir '0000-00-00' como una fecha válida. Todavía se puede insertar fechas con la opción IGNORE. Cuando no está en modo estricto, la fecha se acepta pero se genera una advertencia.
 
Para que nos permita crear la tabla, primero debe ir estas instrucciones

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

 

 Creando una tabla con fecha por defecto '0000-00-00 00:00:00':

CREATE TABLE IF NOT EXISTS `prueba` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(501) DEFAULT NULL,
  `creado` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `actualizado` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;

 

Documentación: http://dev.mysql.com/doc/refman/5.0/en/sql-mode.html