Problemas con campos blobs sin valor por defecto en MySQL

publicado por Miguel Angel Fernández el 10/04/2013 12:19

Los campos BLOB de MySQL son ideales para almacenar objetos serializados, el problema es que en su construcción no puedes aplicarles un valor por defecto (ni siquiera null) y al realizar un INSERT de la fila sin rellenar el campo, el sistema te devuelve un error de que el campo no tiene un "default value":

SQL Error (1364): Field 'CAMPO_BLOB' doesn't have a default value

Este problema es debido a que la configuración de SQL de MySQL está en modo estricto (strict mode) y he podido notar que esto ocurre en las instalaciones bajo Windows.

Podemos desactivar esta propiedad y el error se convertirá en un warning de la siguiente manera:

En el fichero my.cnf cambiar la variable: 

sql_mode="STRICT_TRANS_TABLES,otras,listas,de,opciones"

Eliminando el valor "STRICT_TRANS_TABLES".

Tambien lo podemos hacer a traves de una sentencia SQL:

SET @@global.sql_mode = "";
Leer más...