j'ai fait ça :
CREATE OR REPLACE FUNCTION deplacer_donnees_update() RETURNS VOID AS
$body$
DECLARE
curs refcursor;
rowvar schema_test.test2%ROWTYPE;
BEGIN
FOR rowvar IN SELECT * FROM schema_test.test2
LOOP
BEGIN
INSERT INTO schema_test.test1 VALUES(rowvar.id, rowvar.nom);
EXCEPTION WHEN unique_violation THEN
UPDATE schema_test.test1 SET nom=rowvar.nom WHERE id=rowvar.id;
END;
END LOOP;
END;
$body$
LANGUAGE plpgsql;
J'ai essayé sur 3 données ça fonctionne, est-ce que le fait de d'ouvrir un nouveau bloc (begin .. end) à chaque tour de boucle nuit beaucoup aux performances ?
Est-ce qu'il y a mieux à faire ?
Merci
Message édité le 13 août 2015 à 16:11:29 par thetalc