Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   copiar registros de una tabla a otra (https://www.clubdelphi.com/foros/showthread.php?t=83209)

novatoy 22-05-2013 17:01:32

copiar registros de una tabla a otra
 
buenos días tengo un problema, estaría muy agradecido con aquel o aquellos que me ayuden.
El problema es que tengo 3 tablas (cliente, factura, ropa) factura tiene un dato en común con cliente y ropa uno en común con factura, las tres tienen distintos campos y numero de campos y uno en común lo único que necesito es que que por ejemplo el campo id_cliente=5 de la tabla cliente se ponga en el campo id_cliente de la tabla factura donde el cod_factura sea igual al registro id_cliente de la tabla cliente osea igual a 5 y así también con la tabla ropa pero esta vez refiriéndose a la tabla factura.

De antemano muchas gracias y espero prontas respuestas

Casimiro Notevi 22-05-2013 17:50:44

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Neftali [Germán.Estévez] 23-05-2013 10:50:27

Hola.

Creo que Casimiro quiere decir que deberías intentar explicarte mejor, porque a mi tampoco me queda claro...
Podrías poner la estructura completa de las tablas, para hacernos una idea.

En cuanto al problema, describirlo mejor también aclarará las cosas.

¿Dónde quieres realizar eso?
¿En la inserción?
¿Tienes relaciones entre las tablas? ¿Qué campos?

ecfisa 23-05-2013 12:32:01

Hola.

Y también sería muy útil que nos dijeras con que RDBMS (bd) estas trabajando y que componentes estas usando para conectarte.

Saludos. :)

novatoy 23-05-2013 15:17:13

Me explico mejor
 
Buenos dìas, ok esta es la estructura de las tablas

Código SQL [-]
create table cliente(id_cliente int unique not null auto_increment,
                                  nombre varchar(50) not null, telefono bigint not null,
                                  direccion varchar(40), primary key(id_cliente));

create table factura(cod_factura int unique not null auto_increment,
                                  fecha_ent date not null, cant_prends int not null,
                                  total int not null, id_cliente int , primary key(cod_factura),
                                  FOREIGN KEY(id_cliente) REFERENCES cliente(id_cliente)
                                  ON DELETE CASCADE ON UPDATE CASCADE);

create table ropa(id_ropa int unique not null auto_incremente, 
                              cod_factura int, caracteristicas varchar(2000),
                              primary key(id_ropa), FOREIGN KEY(cod_factura) REFERENCES
                              factura(cod_factura) ON DELETE CASCADE ON UPDATE 
                              CASCADE);
Y lo que necesito es que en un procedimiento almacenado como el que sigue pueda obtener los datos de todas las tablas y que en los campos en comun pueda obtener a que id_cliente pertenece esa factura y a que cod_factura pertenece esas prendas

Este es el procedimiento
Código SQL [-]
delimiter //
create procedure ins_lava(IN nombre varchar(50), IN telefono bigint, 
                                              IN direccion varchar(50), IN fecha_ent date,
                                              IN cant_prends int, IN total int,
                                              IN caracteristicas varchar(2000))
                      BEGIN
insert into cliente(nombre,telefono,direccion) values(nombre,telefono direccion);

insert into factura(fecha_ent,cant_prends,total) values(fecha_ent,cant_prends,total);

insert into factura(id_cliente) select id_cliente from cliente;
//agregar el id_cliente de cliente al id_cliente de factura, es decir si el cod_factura= id_cliente de la tabla cliente

entonces que lo copie 

insert into ropa(caracteristicas) values(caracteristicas);

insert into ropa(cod_factura) select cod_factura from factura;//pasa lo mismo que con la instruccion de arriba, no me lo deja agregar

Estoy usando mysql 5.5 y un enlace a java ("jdbc")

Muchas gracias

Casimiro Notevi 23-05-2013 16:43:30

¡Ufff!, creo que no se entiende según el código que has puesto, seguramente estás confundido o, más seguramente, no te hemos entendido bien. Veamos, dejando a un lado el código: ¿Tú qué quieres hacer exactamente?

novatoy 23-05-2013 17:35:39

Ok
 
Listo, boy nuevamente

Entonces tengo tres tablas(cliente,factura,ropa) todas tres tienen un campo en comun y el resto son cantidad y campos diferentes y lo que nesecito es que en los campos en comun se guarden los registros para identificar el dueño de la factura y con el codigo de la factura sepa cual es la ropa. Ejemplo id_cliente=3 de la tabla cliente se guarde en el id_cliente de la tabla factura pero que ese id_cliente coincida con el cod_factura de la tabla factura, algo asi select cliente,factura insert into factura.id_cliente WHERE cliente.id_cliente=factura.cod_factura;

mejor dicho si id_cliente de la tabla cliente es =5 y cod_factura de la tabla factura=5 entonces
que se inserte ese 5 del id_cliente y se almacene en el campo id_cliente en la tabla factura

Gracias.


La franja horaria es GMT +2. Ahora son las 20:27:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi