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