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

Copiar un atributo de una tabla a otra

Estas en el tema de Copiar un atributo de una tabla a otra en el foro de PostgreSQL en Foros del Web. Hola a todos. Tengo una tabla: customers (customerid,companyname, ... country,countryID) country (countryID,countryname) countryID es clave foranea en customers y clave primaria en country . Existe ...
  #1 (permalink)  
Antiguo 21/11/2011, 18:29
 
Fecha de Ingreso: septiembre-2006
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Copiar un atributo de una tabla a otra

Hola a todos.

Tengo una tabla:
customers(customerid,companyname, ... country,countryID)
country(countryID,countryname)

countryID es clave foranea en customers y clave primaria en country.
Existe otra tabla countries en la base de datos por eso aparece un country en customers.

Puede parecer raro como esta definido pero es una practica.

Lo que quiero hacer es llenar la tabla country con los datos que hay en la tabla customers(country). Es decir pasar los paises de la tabla cliente a mi tabla recien creada country, automaticamente.

Hice una consulta en mi clase y me dijeron que podria usar cursores. Pero no entiendo la idea de cursores, esto fue lo que hice:

Código HTML:
CREATE OR REPLACE FUNCTION sp_test() RETURNS VOID AS
$BODY$
DECLARE
	custid varchar(5);
	fcompanyname varchar(40);
	fcontactname varchar(30);
	fcontacttitle varchar(30);
	faddress varchar(60);
	fcity varchar(15);
	fregion varchar(15);
	fcountry varchar(15);
	fphone varchar(24);
	ffax varchar(24);
	
	cursX CURSOR FOR SELECT * FROM customers;
BEGIN
OPEN cursX ;

	while found loop
		FETCH NEXT FROM cursX INTO custid,fcompanyname,fcontactname,fcontacttitle,faddress,fcity,fregion,fcountry,fphone,ffax;
		INSERT INTO country(countryname)
		VALUES (fcountry) ;
	end loop;
	
CLOSE cursX;

END;
$BODY$ 
LANGUAGE plpgsql;
¿En que me equivoco? o mejor aun ¿ Puedo hacer lo que me propongo de una manera mas simple ?

Gracias por responder

Etiquetas: end, insert, select, sql, tabla, atributos
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 18:40.