Kopiowanie danych pomiędzy tabelami
Poniedziałek, 05 Styczeń 2009 22:09
Dane pomiędzy tabelami można skopiować bezpośrednio wykorzystując zapytanie SQL. Należy oczywiście pamiętać, że bazy danych, w których te same dane powtarzają się zostały błędnie zaprojektowane. Właśnie po to wymyślono relacje i diagramy związków encji żeby wyeliminować powtarzanie się danych wewnątrz bazy. Może jednak zajść konieczność skopiowania danych i wówczas możemy skorzystać bezpośrednio z mechanizmów dostępnych w SQL bez konieczności używania, któregoś z języków programowania.
Struktura takiego polecenia może wyglądać następująco:
INSERT INTO nazwa_tabeli_docelowej (nowe_pole_1, nowe_pole_2, nowe_pole_3) SELECT pole_1, pole_2, pole_3 FROM nazwa_tabeli_zrodlowej;
Ilość pól pobieranych z tabeli źródłowej musi być dokładnie taka sama jak ilość pól tabeli do której kopiujemy dane. W zapytaniu można dodatkowo określić warunek dla danych, które mają zostać skopiowane.
INSERT INTO nazwa_tabeli_docelowej (pole_1, pole_2, pole_3) SELECT pole_1, pole_2, pole_3 FROM nazwa_tabeli_zrodlowej; /* ewentualnie dodatkowo warunek */ WHERE pole_1 != '';
Powyższe zapytanie SQL skopiuje jedynie te rekordy, których posiadają jakąś wartość w polu: pole_1 tabeli źródłowej.
Zmieniony: Poniedziałek, 05 Styczeń 2009 22:35
Komentarze