1364: Field 'name' doesn't have a default value (o campo não tem valor padrão)
MySQLO 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.
Mais entradas deste banco
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (a tabela não tem nenhuma partição para o valor)
- 1049Unknown database 'name'
- 1206The total number of locks exceeds the lock table size (o número total de locks excede o tamanho da tabela de locks)
- 1236Got fatal error 1236 from master when reading data from binary log (erro fatal 1236 do master ao ler o binary log)
- 1129Host 'host' is blocked because of many connection errors (host bloqueado por excesso de erros de conexão)
- 1194Table 'name' is marked as crashed and should be repaired (tabela marcada como corrompida; deve ser reparada)