#
Bazy danych

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

 

Import dużych plików MySQL przy użyciu polecenia SOURCE

Czwartek, 01 Styczeń 2009 16:35

Wygodnym narzędziem do importowania plików przechowujących wyeksportowane dane z bazy danych MySQL jest phpMyAdmin. Często jednak występują problemy podczas importowania dużych plików SQL. Mogą one wynikać z konfiguracji z konfiguracji pliku php.ini, w którym zapisany jest maksymalny rozmiar wczytywanego pliku:

 
upload_max_filesize = 2M
 

Wygodnym sposobem importu dużych plików jest użycie instrukcji MySQL: SOURCE

. Użycie instrukcji SOURCE wymaga wcześniejszego zalogowania się klientem bazy do serwera MySQL. Składnia polecenia:

 
mysql -u [nazwa_uzytkownika] -h [nazwa_hosta] -p
 

Zmieniony: Piątek, 02 Styczeń 2009 11:10

Więcej…

 


Kategorie

Login