postgres bazaOne to bazaTwo

      Możliwość komentowania postgres bazaOne to bazaTwo została wyłączona
\c bazatwo ALTER TABLE rodzic2 ADD COLUMN old_id_from_bazaOne int; ALTER TABLE dziecko2 ADD COLUMN old_id_from_bazaOne int; CREATE EXTENSION dblink; CREATE VIEW viewBazaOne AS SELECT * FROM dblink('dbname=bazaone', 'SELECT r.imie as rimie, r.nazwisko as rnazwisko, r.id as rid, d.imie as dimie, d.data_urodzenia as dage, d.id as did FROM dziecko d RIGHT JOIN rodzic r ON r.id = d.rodzic1id OR r.id = d.rodzic2id;') AS t1( rimie text, rnazwisko text, rid int, dimie text, dage date, did int); DO $do$ DECLARE rec record; iddziecko2 dziecko2.id%TYPE; idRodzic2 rodzic2.id%TYPE; tx text; BEGIN TRUNCATE dziecko_rodzic CASCADE; DELETE FROM rodzic2; DELETE FROM dziecko2; FOR rec IN SELECT * FROM viewbazaone LOOP IF EXISTS(SELECT old_id_from_bazaone FROM rodzic2 WHERE old_id_from_bazaone = rec.rid) THEN RAISE NOTICE 'rodzic(%) alerdy exists in baza2', rec.rid; ELSE INSERT INTO rodzic2(imie,nazwisko,old_id_from_bazaone) VALUES (rec.rimie,rec.rnazwisko,rec.rid); END IF; IF (rec.did) is not null THEN INSERT INTO dziecko2 (imie,data_urodzenia,old_id_from_bazaone) VALUES (rec.dimie,rec.dage,rec.did); iddziecko2:=(SELECT id FROM dziecko2 WHERE old_id_from_bazaone = rec.did LIMIT 1); idRodzic2:= (SELECT id FROM rodzic2 WHERE old_id_from_bazaone = rec.rid LIMIT 1); INSERT INTO dziecko_rodzic (id_rodzic,id_dziecko) VALUES (idRodzic2,iddziecko2); END IF; END LOOP; END $do$