Fecha y hora actual: Martes 28 Ene 2020 08:15
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

[SOLUCIONADO] Cómo hacer un insert masivo?

El tema está bloqueado: no pueden editarse ni agregar mensajes.

Índice del Foro > MySql > [SOLUCIONADO] Cómo hacer un insert masivo?

Autor Mensaje
CarmaZone
Usuario Iniciado


Registrado: 15 Oct 2011
Mensajes: 28
Ubicación: España

Mensaje Publicado: Miércoles 06 Jun 2012 11:37

Título del mensaje: [SOLUCIONADO] Cómo hacer un insert masivo?

Responder citando

Hola a tod@s.

Tengo que hacer una inserción masiva, es decir, seleccionar varios albaranes y hacer una sola factura.

Tengo que insertar todos los artículos de los albaranes y si son muchos artículos, no voy a hacer 100 insert into o más que tardaría mucho.

He visto que existe algo como

Código:
insert into (campo 1, campo 2) values (dato1, dato 2), (dato3, dato4)


aunque no sé si eso también sería lento.

¿Habría que hacerlo con procedimientos almacenados o algo por el estilo?

Gracias y Salu2!!!



Ultima edición por CarmaZone el Sábado 09 Jun 2012 13:05; editado 1 vez
Volver arriba
Ver perfil del usuario Enviar mensaje privado
weirdmix
Moderador Global


Registrado: 08 May 2008
Mensajes: 1385
Ubicación: Mérida - MEXICO

Mensaje Publicado: Viernes 08 Jun 2012 02:03

Título del mensaje: Re: Cómo hacer un insert masivo?

Responder citando

si la info ya la tienes en otras tablas pues es facil:
Código:

insert into tableDestino(campo1, campo2, campo3)
select campo1, campo2, campo3
from tableOrigen
where [condiciones]
 

solo tienes q tener cuidado con el orden de los campos a insertar, puedes poner inclusive valores null o en blanco en donde no necesites info.

saludos
Super Super Super


------------------------------
WeirdMix
Colaborador y Moderador Global
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo MSN Messenger
CarmaZone
Usuario Iniciado


Registrado: 15 Oct 2011
Mensajes: 28
Ubicación: España

Mensaje Publicado: Viernes 08 Jun 2012 21:21

Título del mensaje: Re: Cómo hacer un insert masivo?

Responder citando

Eso lo había visto pero no me sirve, puesto que estoy usando LINQ to Entity y hago consultas sobre objetos.

He visto que existe LOAD DATA INFILE - http://dev.mysql.com/doc/refman/5.0/es/load-data.html

Así que si veo que se relentiza pues me guardo todos los artículos a un .txt o cvs separado por comas y luego un procedimiento almacenado que me inserte el archivo de texto.

Creo que puede ser lo más eficiente.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
CarmaZone
Usuario Iniciado


Registrado: 15 Oct 2011
Mensajes: 28
Ubicación: España

Mensaje Publicado: Sábado 09 Jun 2012 13:01

Título del mensaje: Re: Cómo hacer un insert masivo?

Responder citando

Bueno pues solucionado.

He usado un bucle agegando objetos y, una vez agregados todos, he llamado al método que lo manda a la bases de datos y éstas son las pruebas.

Insercción de 100 registros: 1 seg.
Insercción de 5.000 registros: 3 seg
Insercción de 20.000 registros: 13 seg.

Así que creo que es bastante aceptable.

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
El tema está bloqueado: no pueden editarse ni agregar mensajes.
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Como Agrupar en la Vista los registros que se i...

eddiemgio ASP, ASP.NET 0 Viernes 17 Ene 2020 19:32 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda para hacer formula en

luiscoro40 Visual Basic y VBA 0 Jueves 14 Nov 2019 15:46 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Como eliminar mi cuenta del foro

Karlos51 Dudas, criticas constructivas o sugerencias 1 Viernes 24 May 2019 13:25 Ver último mensaje
El foro no contiene ningún mensaje nuevo

¿Cómo instalar correctamente JDK (Java Develope...

Alfonso Lara Temas generales 2 Martes 07 May 2019 22:09 Ver último mensaje
El foro no contiene ningún mensaje nuevo

¿como puedo obtener un dato de un radiobutton

jose mansilla Programación para dispositivos móviles 0 Jueves 27 Sep 2018 16:08 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,