Kopiowanie bazy danych do innej bazy z edycja rekordow

0

Witajcie,
mam tabele:

tabela_1
+------------+
| ID  | name |
| 1     TEST |
| 2     TEST |
| 3     INNY |
| ...        |
+------------+

Potrzebuje na podstawie tej tabeli wypelnic inna tabele, ktora bedzie wygladala tak

tabela_2
+------------+
| ID  | name |
| 1     AKZ1 |
| 1     AKZ2 |
| 2     AKZ1 |
| 2     AKZ2 |
| 3     INNY |
| ...        |
+------------+

Czyli ID zostaje i kazdy rekord z nazwa TEST w nowej tabeli bedzie mial 2 osobne rekordy z nazwami AKZ1 i AKZ2, i jeszcze jeden problem,
jak to zrobic do wszystkich rekordow z tabeli pierwszej? Uzywam postresql

1

Napisz procedurę która pobierze wszystkie dane z tabela_1 do kursora. Później iterujesz po tym kursorze i w zależności od tego na jaki rekord trafisz, insertujesz to do drugiej tabeli zgodnie z założeniami.

A no takie ID jest bez sensu. ID ma być unikatowe, dołóż jakąś inną kolumnę może z kluczem obcym do tej tabeli_1, a w tabela_2 zostaw kolumnę ID na klucz główny.

0

ID jest unikatowe w tabeli glownej, to juz sa tabele mapujace

0
Stang napisał(a):

ID jest unikatowe w tabeli glownej, to juz sa tabele mapujace

tabela mapująca ma dwa id

0
with x (id, name) as(values(1, 'TEST'), (2,'TEST'), (3, 'INNY'))
, map(name, new_name) as(values ('TEST', 'AKZ1'), ('TEST', 'AKZ2'))

select x.id, coalesce(new_name, name)  from x left join map using(name)

1 użytkowników online, w tym zalogowanych: 0, gości: 1