"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que estou recebendo "Valor padrão inválido para o campo \'create_date\'" no MySQL e como posso corrigir isso?

Por que estou recebendo "Valor padrão inválido para o campo \'create_date\'" no MySQL e como posso corrigir isso?

Publicado em 2024-11-21
Navegar:722

Why Am I Getting \

"Valor padrão inválido para o campo 'create_date': Compreendendo o modo SQL NO_ZERO_DATE"

Em uma instrução SQL create recente, você encontra o erro "'Valor padrão inválido para 'create_date'" para o seguinte SQL:

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

Para resolver esse erro, é crucial entender o modo SQL do MySQL, especificamente a configuração NO_ZERO_DATE. Esta configuração não permite o uso de '0000-00-00' como data válida no modo estrito. Isso ocorre porque o SQL trata valores booleanos como números (por exemplo, TRUE = 1, FALSE = 0) e armazena datas como números inteiros que representam o número de dias desde um ponto de referência. Consequentemente, o uso de '0000-00-00' entra em conflito com o valor '0' usado para valores booleanos.

Para resolver esse problema, considere as seguintes opções:

  • Desative o modo NO_ZERO_DATE: Em sua instrução SQL, inclua a instrução 'SET SQL_MODE = "NO_ZERO_IN_DATE";' antes de criar a tabela. Isso desativa temporariamente o modo NO_ZERO_DATE, permitindo que você defina '0000-00-00' como o padrão para create_date.
  • Use um valor padrão válido: Substitua '0000-00-00 00 :00:00' com uma data padrão válida na instrução SQL, como 'CURRENT_TIMESTAMP' ou NULL, dependendo do desejado behavior.
  • Use a opção IGNORE: Se você absolutamente precisar usar '0000-00-00 00:00:00', inclua a opção IGNORE na instrução SQL. No entanto, isso pode levar a possíveis inconsistências de dados e geralmente não é recomendado.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3