#

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.

Komentarze

imię/nick *
Email (weryfikacja i odpowiedzi)
URL
ChronoComments by Joomla Professional Solutions
Dodaj komentarz

Zmieniony: Poniedziałek, 05 Styczeń 2009 22:35

 

Kategorie

Login