Update danych z jednej bazy do drugiej

0

Mam dwie bazy w obu mam taką samą strukturę:
tabela products:
ID NOT NULL NUMBER(38)
name VARCHAR2(256)
description NOT NULL VARCHAR2(256)

categories:
ID
name

i tabela łącząca

Jak najszybciej przenieść kompletne dane (z zachowaniem relacji) z bazy 2 do bazy 1 tak żeby dane zawarte w bazie 1 nie uległy nadpisaniu. Id w obu bazach powtarzają się zarówna dla produktów jak i dla kategorii.

0

Musisz przekopiować te, dla których odpowiednich ID nie ma w bazie 1 i są to dane kompletne w obu tabelach.

0

Tak tylko chodzi o przekopiowanie całej zawartości bazy 2 do bazy 1 przy zachowaniu spójności danych. Np w bazie 2 mam produkt o ID = 1 nazwie drabina i połączony on jest z kategoriami 1 i 2. I jak najmniejszym kosztem przenieść to do bazy 1 gdzie jest produkt o ID 1 ale jest to zupełnie inny produkt tak jak kategorie 1,2 - tez istnieją ale są kompletnie inne.

Czy np przenumerować ID w bazie 2 tak żeby najmniejsze id zaczynało się od największego id występującego w bazie 1 i tak we wszystkich tabelach?

0

Niewiem czy w MySql jest cos takiego DBLink tak jak w Oracle, Jezeli tak mozesz sobie stworzyc go z odpowiednim hostem i SIDem i operuj zwyklym merge lub insertami i selectami. A jezeli masz te 2 bazyna 1 serwerze, dodaj uprawnienia na select i mozesz operowac na bazie jak z DBLinkem

0
  1. Wgrywasz do bazy 1 te rekordy z tabeli products z bazy 2, których nie ma, ale ŁĄCZĄC PO TREŚCI (name, description), a nie po ID.
  2. To samo robisz z tabelą categories.
  3. Łączysz sobie odpowiednie tabele ze sobą np. tak:
SELECT c1.*, c2.id FROM baza1.categories c1 JOIN baza2.categories c2 ON c1.name=c2.name

i już masz nowe id, które musisz wstawić do 3 tabeli

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