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

Insertar varios registros en una sola vez

Estas en el tema de Insertar varios registros en una sola vez en el foro de Mysql en Foros del Web. Hola a todos tengo lo siguiente, primero realizo una consulta para determinar si el registro existe en caso de no estar en mi tabla lo ...
  #1 (permalink)  
Antiguo 23/01/2015, 10:55
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Insertar varios registros en una sola vez

Hola a todos tengo lo siguiente, primero realizo una consulta para determinar si el registro existe en caso de no estar en mi tabla lo inserto... esto funciona pero solo obtengo 285 registros insertados... (tengo alrededor de 1000 registros)
Es posible hacer el insert de todos mis registros o debo dividirlo e ir insertando por partes????

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Última edición por gnzsoloyo; 23/01/2015 a las 11:04
  #2 (permalink)  
Antiguo 23/01/2015, 11:06
Avatar de 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, 5 meses
Puntos: 2658
Respuesta: Insertar varios registros en una sola vez

@Briss:
Muestranos el codigo SQL real, la estructura de la tabla, y una muestra de datos.
Por lo poco que describes bien podría estar pasando que estés violando alguna constraint de la tabla, o bien que haya defectos de datos.
Tu caso es especifico, y debe analizarse sobre la realidad, y no en forma teórica.
En teoría, altas masivas son simples de hacer y no deberían fallar... si no es por problemas con los DATOS.

PD: No te olvides de leer las reglas del foro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 23/01/2015 a las 11:22
  #3 (permalink)  
Antiguo 23/01/2015, 11:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Insertar varios registros en una sola vez

Código MySQL:
Ver original
  1. -- Estructura de tabla para la tabla `conceptospagos`
  2.   `idconcepto` int(11) NOT NULL AUTO_INCREMENT,
  3.   `clavecliente` varchar(50) NOT NULL,
  4.   `conceptoapagar` varchar(50) DEFAULT NULL,
  5.   `periodo` varchar(120) NOT NULL,
  6.   PRIMARY KEY (`idconcepto`)

Select para determinar si los registros existen
Código MySQL:
Ver original
  1. SELECT clavecliente,periodo FROM conceptospagos Where clavecliente= %s AND periodo = %s AND conceptoapagar = %s
INSERT
Código SQL:
Ver original
  1. INSERT  INTO conceptospagos (clavecliente, conceptoapagar, periodo) VALUES (%s, %s,%s)

DATOS EN MI TB
1---001---005---Inicial
2---001---006---Inicial
3---001---007---Inicial

Última edición por gnzsoloyo; 23/01/2015 a las 11:49
  #4 (permalink)  
Antiguo 23/01/2015, 11:50
Avatar de 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, 5 meses
Puntos: 2658
Respuesta: Insertar varios registros en una sola vez

Sin los datos reales que vas a ingresar no se puede validar mucho, pero yo lo que haría es poner los datos a subir en un archivo CSV, subirlos a una tabla creada para validar, con LOAD DATA INFILE, y luego realizar un cruce entre ambas.
Yo casi apostaría que hay datos repetidos...
La otra opción es que generes un log en un archivo por medio de la aplicación, donde almacenes las sentencias SELECT que devolvieron datos. DE ese modo podrías verificar manualmente si los datos están o no repetidos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/01/2015, 12:01
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Insertar varios registros en una sola vez

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Sin los datos reales que vas a ingresar no se puede validar mucho, pero yo lo que haría es poner los datos a subir en un archivo CSV, subirlos a una tabla creada para validar, con LOAD DATA INFILE, y luego realizar un cruce entre ambas.
Yo casi apostaría que hay datos repetidos...
La otra opción es que generes un log en un archivo por medio de la aplicación, donde almacenes las sentencias SELECT que devolvieron datos. DE ese modo podrías verificar manualmente si los datos están o no repetidos.
Gracias amigo pero de hecho estoy haciendo pruebas en mi tabla vacia y siempre se insertar 285 registros los borro y los vuelvo a cargar y pasa lo mismo....

lo del cvs se me habia ocurrido pero no quiero que el cliente lo haga (ya que todos los procesos son directos en el sistema... y ponerles algo diferente Ufff para que te cuento)
  #6 (permalink)  
Antiguo 23/01/2015, 13:05
Avatar de 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, 5 meses
Puntos: 2658
Respuesta: Insertar varios registros en una sola vez

El tema sigue siendo el mismo: No hay ninguna razón para que el proceso de inserción falle, en tanto los datos que se envían estén perfectamente cargados.
Ninguna.

Por eso es que te sugiero que en esta etapa de desarrollo, generes un log de los inserts que se cargan y otro de los que no se cargan, para ver por qué se corta el proceso. Hay que verificar qué diferencia los caso exitosos de los fallidos.

Sólo parece que podría fallar a nivel programático, no de la tabla o de la base.

En todo caso si es anivel de programación tendrás que postear el problema en el foro de PHP, que es el lenguaje que estás usando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, registro, registros, select, sql, tabla, update, vez
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 19:44.