Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/07/2016, 12:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta sobre error #1364

Código MySQL:
Ver original
  1. `condicionesPago` INT(11) NOT NULL,
Está definido como NOT NULL, sin DEFAULT, como te comenta Libras.
El problema es simplemente que no le estás pasando valores, y si no se producía antes puede ser tanto por defectos de programación que anteriormente quedaban escondidos y en el nuevo servidor no, como diferentcias en la configuracion de MySQL .

A nivel programación, puedes verificar donde falla para resolverlo. Es tema ajenos a este foro.

A nivel tabla ,se soluciona simplemente poniendole un DEFAULT ''.

En el servidor, lo mas probable es que esté en modo estricto (ver manual de referencia: https://dev.mysql.com/doc/refman/5.6...ql-mode-strict), que exige exactitud en valores, datos, rangos, etc. Eso no lo puedes controlar tu, solo el DBA de ese hosting.

TRaducido a lo bruto:

Cita:
Modo estricto SQL

El modo estricto controla cómo MySQL trata los valores inválidos o no presentes en las declaraciones de cambio de datos como INSERT o UPDATE. Un valor puede ser inválida por varias razones. Por ejemplo, se puede tener un tipo de datos incorrecto para la columna, o puede estar fuera de rango. Un valor no está presente cuando el registro sea insertado no contiene un valor para una columna no nula de que no tiene ninguna cláusula DEFAULT explícita en su definición. (Para una columna NULL, NULL se inserta si el valor no está presente.) El modo estricto también afecta a las instrucciones de DDL como CREATE TABLE.

Si el modo estricto no está en vigor, MySQL inserta valores ajustados para los valores inválidos o no y produce advertencias (véase la Sección 13.7.5.41, "VER ADVERTENCIAS sintaxis"). En modo estricto, puede producir este comportamiento usando INSERT IGNORE o UPDATE IGNORE.

En cuanto a datos como SELECT que no cambian los datos, los valores no válidos generan una advertencia en modo estricto, no es un error.

A partir de MySQL 5.6.11, el modo estricto produce un error para los intentos de crear una clave que supera la longitud máxima de la clave. Anteriormente, esto dio lugar a una advertencia y el truncamiento de la clave de la clave de longitud máxima (la misma que cuando el modo estricto no está activado).

El modo estricto no afecta si las restricciones de claves foráneas se verifican. FOREIGN_KEY_CHECKS se pueden utilizar para eso. (Véase la Sección 5.1.4, "Variables de sistema del servidor".)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)