Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porownywanie baz danych
rkolida
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


Witam,
Mam problem, nie wiem jakiego uzyc programu do porownania dwoch baz danych.
Jedna to baza moich wszystkich zdjec (baza z nazwami plikow), a druga to baza zdjec, ktore z roznych powodow usunalem kiedys.

BAZA01 - wszystkie zdjecia (rowniez te usuniete)
BAZA02 - zdjecia usuniete

Jakim programem moge zrobic BAZA01 odjac BAZA02 ?

Nie wiem czy jasno sie wyrazilem, ale rozumiecie o co chodzi chyba..
Chodzi o to zeby z BAZY01 usunac to wszystko co znajduje sie w BAZIE02. Takie jakby czyszczenie.

Dodam jeszcze tylko ze to bazy MySQL. Znacie jakis soft ktory szybko to zrobi ? Moze nawet Access to ma, ale nie wiem jak tego szukac.

Pozdrawiam,
Raf
Go to the top of the page
+Quote Post
venomz
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

Ostrzeżenie: (0%)
-----


nie wiem czy jest do tego jakis specjalny soft ale na pewno da sie napisac niezbyt skomplikowany skrypt ktory Ci wykona taka operacje. Jezeli struktura tabel jest taka sama w obu bazach to prawdopodobnie da sie to zrobic jednym zapytaniem
Go to the top of the page
+Quote Post
rkolida
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


Struktura jest taka sama. Ale wlasnie nie bardzo wiem jak takie zapytanie zmajstrowac, a rekordow jest duzo i nie chce namieszac.
Go to the top of the page
+Quote Post
venomz
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

Ostrzeżenie: (0%)
-----


doladnie ci nie podpowiem bo musialbym miec dostep do tej bazy ale kombinuj mniej wiecej tak:

Jezeli masz w tabeli jakas kolumne ktora gwarantuje niepowtarzalnosc (jakis klucz) to uzyj ja w zapytaniu w ten sposob:

  1. DELETE FROM baza1.tabela1 WHERE id = any (SELECT id FROM baza2.tabela1);


to powinno wykasowac z bazy1 z tabeli1 wszystkie wiersze ktore znajduja sie w bazie2 w tabeli1

Ten post edytował venomz 29.10.2006, 17:01:00
Go to the top of the page
+Quote Post
rkolida
post
Post #5





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


No mam w tabeli tylko jedna kolumne - nazwy plikow.
I sa one rozne, cos takiego 20060223123342.jpg , po prostu data, wiec sie nie powtarza.

Jedna tabela to zdjecia_wszystkie
Druga top zdjecia_usuniete

Czyli to bedzie ok: questionmark.gif?

  1. DELETE FROM foty.zdjecia_wszystkie WHERE zdjecie = any (SELECT zdjecie FROM foty.zdjecia_usuniete);


Dobrze ?
Go to the top of the page
+Quote Post
venomz
post
Post #6





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

Ostrzeżenie: (0%)
-----


sprobuj zrobic cos takiego:

  1. SELECT * FROM foty.zdjecia_wszystkie WHERE zdjecie = any (SELECT zdjecie FROM foty.zdjecia_usuniete);


to zapytanie zamiast usunac wylistuje. jak wszystko sie bedzie zgadzalo to usuwaj:

  1. DELETE FROM foty.zdjecia_wszystkie WHERE zdjecie = any (SELECT zdjecie FROM foty.zdjecia_usuniete);
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Zrzuc tresc dancyh zbazy do plikow (posortowane) i daj 'diff'a


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
rkolida
post
Post #8





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


OKEJ, dzieki wielkie, bede probowal zadzialac z zapytaniami i dam znac jak poszlo.
A z tym diffem o co chodzi ?

Dziekuje venomz !

Ten post edytował rkolida 29.10.2006, 17:55:11
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


http://unixhelp.ed.ac.uk/CGI/man-cgi?diff


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
rkolida
post
Post #10





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


Dzialam w phpMyAdmini i oto wynik:

zapytanie SQL: Dokumentacja

  1. SELECT *
  2. FROM foty.zdjecia_wszystkie WHERE zdjecie = any(
  3.  
  4. SELECT zdjecie
  5. FROM foty.zdjecia_usuniete )
  6. LIMIT 0, 30


MySQL zwrócił komunikat: Dokumentacja
#1064 - Something is wrong in your syntax obok '(select zdjecie from foty.zdjecia_usuniete) LIMIT 0, 30' w linii 1
Go to the top of the page
+Quote Post
venomz
post
Post #11





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

Ostrzeżenie: (0%)
-----


z tego co widze to obie kolumny sa w jednej bazie danych (wczesniej chyba pisales o dwoch). jesli tak to nie musisz pisac foty.zdjecia, wystarczy zdjecia.

sprobuj tak:

  1. SELECT *
  2. FROM zdjecia_wszystkie WHERE zdjecie = any(
  3.  
  4. SELECT zdjecie
  5. FROM zdjecia_usuniete )
  6. LIMIT 0, 30


edit:

ale to jednak nie tutaj jest blad bo w tym wypadku nie ma znaczenia czy podasz nazwe bazy czy nie.
u mnie podobne zapytanie ( co prawda inna struktura ale to bez znaczenia ):

  1. SELECT *
  2. FROM game_server.users WHERE user_id = any(
  3.  
  4. SELECT admin_id
  5. FROM game_server.servers )
  6. LIMIT 0, 30;


normalnie sie wykonuje

Ten post edytował venomz 29.10.2006, 18:37:12
Go to the top of the page
+Quote Post
rkolida
post
Post #12





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


To zapytania zwraca ten sam blad. Czy moze to byc wina wersji mysqla lub php ? Uzywam Krasnala 2.7.
Go to the top of the page
+Quote Post
venomz
post
Post #13





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

Ostrzeżenie: (0%)
-----


hmm... ciezko powiedziec bo kod bledu nie jest wystarczajaco sprecyzowany :/

na pewno wszystkie nazwy sa dobrze wprowadzone?

#1064 - Something is wrong in your syntax obok '(select zdjecie from foty.zdjecia_usuniete) LIMIT 0, 30' w linii 1

a co ci zwraca select zdjecie from foty.zdjecia_usuniete ?

Ten post edytował venomz 29.10.2006, 18:40:11
Go to the top of the page
+Quote Post
rkolida
post
Post #14





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


No juz znalazlem na samym dole tutaj: http://dev.mysql.com/doc/refman/5.0/en/any...subqueries.html

Please note that this article is not correct for MySQL before 4.1 despite it being in the manual for 3.23, 4.0, 4.1. No subqueries of any type work in MySQL 4.0 or less.


Ja mam 3.23, bo taki mysql jest w krasnalu. Ale juz zasysam KMySQL 4.1.10a
MySQL 4.1.11 dla Krasnala z krasnal.tk i zobacze co tam sie wydarzy.

Jestem wdzieczny za ten support venomz!

Ten post edytował rkolida 29.10.2006, 18:43:09
Go to the top of the page
+Quote Post
venomz
post
Post #15





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

Ostrzeżenie: (0%)
-----


a no fakt podzapytania nie dzialaja w tych starszych wersjach mysql'a smile.gif
najlepiej zainstaluj sobie mysql'a 5-ke

powodzenia!
Go to the top of the page
+Quote Post
rkolida
post
Post #16





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 28.12.2004

Ostrzeżenie: (0%)
-----


juz dziala !

zainstalowalem nowszego mysqla i gra wszystko. usuwa co trzeba, jest jak byc powinno.
Dziekuje za pomoc Venomz. Szacunek!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:15