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

ingresar datos sin repeticiones al llenar otra tabla

Estas en el tema de ingresar datos sin repeticiones al llenar otra tabla en el foro de Mysql en Foros del Web. Saludos... Les comento mi problema... Tengo una tabla llamada destinatarios, que es donde se guardan varios registros los cuales se llenan a partir de un ...
  #1 (permalink)  
Antiguo 20/05/2009, 16:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
ingresar datos sin repeticiones al llenar otra tabla

Saludos...

Les comento mi problema...

Tengo una tabla llamada destinatarios, que es donde se guardan varios registros los cuales se llenan a partir de un archivo plano... este archivo tienen nombres y direcciones de los destinatarios y un numero de guia (llave principal), hasta aqui todo perfecto...

En la tabla destinatarios las direcciones y los nombres de los clientes se repiten, mi intencion es que al cargar el archivo plano esos datos se guarden tambien en otra tabla (direcciones) donde se almacenen los nombres y las direcciones pero sin repeticion, para posteriores consultas.

Lo he hecho con trigger, pero no se como hace para ingresar los datos sin repeticion..

Denme una luz...

espero haber sido claro...

Gracias...
  #2 (permalink)  
Antiguo 21/05/2009, 07:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ingresar datos sin repeticiones al llenar otra tabla

Una posible solución realizar las siguiente inserción en la tabla direcciones despues de importar todos los datos.

Código mysql:
Ver original
  1. insert into direcciones select nombres,direcciones from destinatarios group by nombres,direcciones;
De esta forma, la tabla direcciones no tendrá registros repetidos.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 21/05/2009, 13:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: ingresar datos sin repeticiones al llenar otra tabla

gracias..

si, eso lo haria en el caso de insertar en una tabla normal... pero lo que necesito es copiar los datos de una tabla a otra y sin registros repetidos...
  #4 (permalink)  
Antiguo 21/05/2009, 14:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ingresar datos sin repeticiones al llenar otra tabla

z_andres

Cita:
pero lo que necesito es copiar los datos de una tabla a otra y sin registros repetidos
La sentencia que puse en el post anterior, pasa los datos de la tabla destinatarios sin repetir a la tabla direcciones.
Debe estar creada la tabla direcciones previamente con dos campos (nombres y direcciones).

Si realmente no sirve, fue que no te entendí bien la pregunta.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 21/05/2009, 14:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: ingresar datos sin repeticiones al llenar otra tabla

Al parecer no me explique bien...

La instruccion que colocaste no me sirve por que yo lo que necesito es que cuando el usuario cargue los datos a la tabla destinatarios a travez de un archivo plano (.csv) se guarden automaticamente en la otra tabla direcciones pero sin repeticiones.

La instruccion que me das copia todo el contenido de la tabla destinatarios a direcciones pero hacer eso cada vez que el usuario cargue informacion llevaria mucho tiempo pues en la tabla destinatarios se almacenan muchos registros.

Estoy tratando de hacerlo con un trigger pero no se que instruccion darle al trigger para que almacene registros unicos.

Estuve probando con algo que encontre...:


Código:
DELIMITER //
CREATE TRIGGER tigg_dir  AFTER INSERT ON destinatarios
FOR EACH ROW
BEGIN
INSERT INTO direcciones SET
                direcciones.nombre=NEW.nombre,
                direcciones.direccion=NEW.direccion,
		direcciones.ciudad=NEW.ciudad,
		direcciones.depto=NEW.departamento
      ON DUPLICATE KEY UPDATE 
		direcciones.nombre=NEW.nombre,
                direcciones.direccion=NEW.direccion,
		direcciones.ciudad=NEW.ciudad,
		direcciones.depto=NEW.departamento,
END;
//DELIMITER ;
Copia todo bien... pero cuando encuentra un duplicado se detiene la copia y sale un error... seria bueno por ejemplo poder saltar ese error y que siga copiando.... pero como?

Espero ser claro...

y muchas gracias por tu ayuda y tu tiempo.
  #6 (permalink)  
Antiguo 21/05/2009, 14:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ingresar datos sin repeticiones al llenar otra tabla

Mira este post.
http://www.forosdelweb.com/f86/inser...cional-686213/

El insert ignore puede servirte para tu caso.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 17:31.