Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Evitar error por almacenar "Vacio" en campo INT

Estas en el tema de Evitar error por almacenar "Vacio" en campo INT en el foro de Mysql en Foros del Web. Tengo desarrollos php que trabajan perfecto en un servidor web: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Versión: Ver original MySQL server version: 5.6.17 Ahora he montado un servidor ...
  #1 (permalink)  
Antiguo 16/02/2018, 05:46
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Evitar error por almacenar "Vacio" en campo INT

Tengo desarrollos php que trabajan perfecto en un servidor web:
Código Versión:
Ver original
  1. MySQL server version: 5.6.17

Ahora he montado un servidor local Ubuntu 16.04.3, donde tengo:
Código Versión:
Ver original
  1. mysql  Ver 14.14 Distrib 5.7.21, for Linux (i686) using  EditLine wrapper

Con la instrucción INSERT agrego registros, teniendo un Campo tipo INT, en donde al almacenar una variable que viene "Sin Valor", recibo mensaje de error.

Lo que he hecho para resolverlo es almacenar 0

PREGUNTA: ¿Que opciones tengo para que al hacer INSERT a un campo INT y la variable venga vacia no recibir mensaje de error?

Se me ocurren 2 opciones:
1- Instalar una versión anterior de mysql
2- Asignar a todas las variables INT un valor de 0.

¿alguna sugerencia?

Gracias.
  #2 (permalink)  
Antiguo 16/02/2018, 05:51
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Evitar error por almacenar "Vacio" en campo INT

PREGUNTA:
¿Es posible indicar, en la Configuración de MySQL 5.7.21 que permita asignar un valor vacio a un canpo INT ?

Gracias
  #3 (permalink)  
Antiguo 16/02/2018, 08:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Evitar error por almacenar "Vacio" en campo INT

No estas poniendo cual es el codigo que manda error, ahora podrias usar un valor default para ese campo "vacio" para que en lugar de vacio cuando no trae nada ponga un 0, pero tendrias que tener cuidado en tu insert, digamos que tienes esta tabla:

dato1 varchar, dato2 int, dato3 float

Pero tu necesitas que el valor 2 sea siempre 0 por lo que podrias hacer tu insert con un default:

Código MySQL:
Ver original
  1. insert into table (dato1,dato3) values ('valor1',1.0)
con esto se pondria el valor del entero en 0

ahora podrias compartir el insert que te da problemas?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 18/02/2018, 00:28
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Evitar error por almacenar "Vacio" en campo INT

Gracias por tu comentario Libras.

El problema es que tengo muchisisimo código desarrollado y hacer el cambio y las pruebas sería mucho trabajo.

Mi opción es seguir con la versión anterior de MySQL.

Estaré cambiando a mediano plazo el código necesario y ajustarme a las nuevas reglas. Ya he empezado, porque algún día el tiempo se agotará.

Saludos






Cita:
Iniciado por Libras Ver Mensaje
No estas poniendo cual es el codigo que manda error, ahora podrias usar un valor default para ese campo "vacio" para que en lugar de vacio cuando no trae nada ponga un 0, pero tendrias que tener cuidado en tu insert, digamos que tienes esta tabla:

dato1 varchar, dato2 int, dato3 float

Pero tu necesitas que el valor 2 sea siempre 0 por lo que podrias hacer tu insert con un default:

Código MySQL:
Ver original
  1. insert into table (dato1,dato3) values ('valor1',1.0)
con esto se pondria el valor del entero en 0

ahora podrias compartir el insert que te da problemas?
  #5 (permalink)  
Antiguo 25/02/2018, 06:08
Avatar de Lecquio  
Fecha de Ingreso: mayo-2004
Ubicación: Asturias, España
Mensajes: 948
Antigüedad: 19 años, 11 meses
Puntos: 34
Respuesta: Evitar error por almacenar "Vacio" en campo INT

Seguramente tu problema sea porque la versión 5.7 de MySQL activa los MySQL modes:
http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
https://gigastur.es/incompatibilidad...ualizar-ubuntu

Prueba a desactivarlos

Etiquetas: almacenar, campo, int, registro, sql, vacio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:15.