DBAtlas · Atlas de operações de banco de dados

1364: Field 'name' doesn't have a default value (o campo não tem valor padrão)

MySQL

O que significa?

Uma linha foi inserida sem valor para uma coluna definida como NOT NULL sem DEFAULT. No modo SQL estrito, o MySQL gera um erro porque não consegue preencher automaticamente a coluna obrigatória ausente.

Por que acontece?

Uma coluna obrigatória (NOT NULL, sem DEFAULT) foi omitida do INSERT, e STRICT_TRANS_TABLES/STRICT_ALL_TABLES está habilitado no sql_mode. Uma aplicação escrita para o modo antigo e permissivo encontra este erro ao ser migrada para um servidor com modo estrito habilitado.

Como resolver

Adicione ao INSERT um valor para a coluna ausente ou defina um DEFAULT adequado na coluna: ALTER TABLE my_table MODIFY my_column ... NOT NULL DEFAULT 'value'; Se a coluna for realmente opcional, permita NULL. O sql_mode pode ser flexibilizado como solução temporária/de compatibilidade, mas manter o modo estrito é recomendado para a qualidade dos dados.

Abrir no DBAtlas →

Mais entradas deste banco