DBAtlas · Atlas de operaciones de bases de datos

1364: Field 'name' doesn't have a default value (el campo no tiene valor predeterminado)

MySQL

¿Qué significa?

Se insertó una fila sin valor para una columna definida como NOT NULL sin DEFAULT. En modo SQL estricto, MySQL genera un error porque no puede rellenar automáticamente la columna obligatoria que falta.

¿Por qué ocurre?

Se omitió en el INSERT una columna obligatoria (NOT NULL, sin DEFAULT) y STRICT_TRANS_TABLES/STRICT_ALL_TABLES está habilitado en sql_mode. Una aplicación escrita para el antiguo modo permisivo encuentra este error al trasladarse a un servidor con el modo estricto habilitado.

Cómo solucionarlo

Añada al INSERT un valor para la columna que falta, o defina un DEFAULT razonable en la columna: ALTER TABLE my_table MODIFY my_column ... NOT NULL DEFAULT 'value'; Si la columna realmente es opcional, permita NULL. sql_mode puede relajarse como solución temporal/de compatibilidad, pero se recomienda mantener el modo estricto por la calidad de los datos.

Abrir en DBAtlas →

Más entradas de este motor