"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué obtengo \"Valor predeterminado no válido para el campo \'create_date\'\" en MySQL y cómo puedo solucionarlo?

¿Por qué obtengo \"Valor predeterminado no válido para el campo \'create_date\'\" en MySQL y cómo puedo solucionarlo?

Publicado el 2024-11-21
Navegar:698

Why Am I Getting \

"Valor predeterminado no válido para el campo 'create_date': comprensión del modo SQL NO_ZERO_DATE"

En una declaración de creación de SQL reciente, aparece el error "'Valor predeterminado no válido para 'create_date'" para el siguiente SQL:

CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) 

Para resolver este error, es fundamental comprender el modo MySQL SQL, específicamente la configuración NO_ZERO_DATE. Esta configuración no permite el uso de '0000-00-00' como fecha válida en modo estricto. Esto ocurre porque SQL trata los valores booleanos como números (por ejemplo, VERDADERO = 1, FALSO = 0) y almacena las fechas como números enteros que representan el número de días desde un punto de referencia. En consecuencia, el uso de '0000-00-00' entra en conflicto con el valor '0' utilizado para valores booleanos.

Para solucionar este problema, considere las siguientes opciones:

  • Deshabilite el modo NO_ZERO_DATE: En su declaración SQL, incluya la declaración 'SET SQL_MODE = "NO_ZERO_IN_DATE";' antes de crear la tabla. Esto deshabilita temporalmente el modo NO_ZERO_DATE, permitiéndole definir '0000-00-00' como el valor predeterminado para create_date.
  • Utilice un valor predeterminado válido: Reemplace '0000-00-00 00 :00:00' con una fecha predeterminada válida en la declaración SQL, como 'CURRENT_TIMESTAMP' o NULL, según lo deseado comportamiento.
  • Utilice la opción IGNORAR: Si es absolutamente necesario utilizar '0000-00-00 00:00:00', incluya la opción IGNORAR en la declaración SQL. Sin embargo, esto puede generar posibles inconsistencias en los datos y generalmente no se recomienda.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3