Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Kopiowanie z jednej bazy do drugiej
kamil_lk
post 11.02.2014, 17:45:22
Post #1





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Witam.

Usiłuję skopiować sobie dane z tabeli w jednej bazie do tabeli z identyczną strukturą do drugiej bazy.
Moje zapytanie
  1. SELECT * INTO `baza2.logs` FROM `baza1.logs`


Niestety nic mi się nie kopiuje.
Obydwie bazy są na tym samym serwerze (aktualnie próbuję to zrobić lokalnie).

Ma ktoś jakiś pomysł?
Go to the top of the page
+Quote Post
c4ash
post 11.02.2014, 17:53:46
Post #2





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


A sprobuj tego:
Kod
INSERT INTO baza2.logs SELECT * FROM baza1.logs
Go to the top of the page
+Quote Post
kamil_lk
post 11.02.2014, 18:06:48
Post #3





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


a da się zrobić tak, że od razu kasuje mi z baza1 te dane co przeniosło do baza2?
Go to the top of the page
+Quote Post
c4ash
post 11.02.2014, 18:12:23
Post #4





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


DROP TABLE ?
Go to the top of the page
+Quote Post
kamil_lk
post 11.02.2014, 18:23:53
Post #5





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Tak, wiem. Ale czy mogę to zrobić w jednym zapytaniu, czy muszę oddzielnie?

Ten post edytował kamil_lk 11.02.2014, 19:09:00
Go to the top of the page
+Quote Post
c4ash
post 11.02.2014, 18:49:15
Post #6





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


A prawde mowiac tego to nie testowalem nigdy. Jesli masz sposobnosc (tzn masz jakies wolne tabele) to sprobuj dodac na koncu AND DROP TABLE baza1.logs
Go to the top of the page
+Quote Post
abjk
post 11.02.2014, 18:58:20
Post #7





Grupa: Zarejestrowani
Postów: 29
Pomógł: 6
Dołączył: 5.04.2013
Skąd: W

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


To może trochę pomóc:
  1. CREATE TABLE new_tbl SELECT * FROM orig_tbl;
Go to the top of the page
+Quote Post
kamil_lk
post 11.02.2014, 19:09:54
Post #8





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Później popróbuję pousuwać. Jak na razie mam poniższy problem.

Mając model, w którym nawiązuję połączenie do bazy PDO w konstruktorze robię sobie uchwyt do bazy1
  1. $this->pdo = parent::getHandler();


I tutaj leży kolejny problem, ponieważ nie wykonuje mi się zapytanie w funkcji getLogs()
  1. public function getLogs($value){
  2.  
  3. $count = $this->pdo->query("SELECT COUNT(*) FROM `logs`");
  4. $count = $count->fetch();
  5. if($count[0]>$value){
  6. $limit = $count[0] - $value;
  7. $result = $pdo->prepare("INSERT INTO baza2.logs SELECT * FROM baza1.logs ORDER BY `created_at` ASC LIMIT :limit"); //to się nie wykonuje
  8. $result->bindValue(':limit', $limit, PDO::PARAM_INT);
  9. $result->execute();
  10. }
  11. }


Czy przy pomocy PDO jest możliwość wykonania takiego zapytania, czy może ja gdzieś robię błąd?

Ten post edytował kamil_lk 11.02.2014, 19:10:17
Go to the top of the page
+Quote Post
Turson
post 11.02.2014, 19:34:34
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Spróbuj
  1. public function getLogs($value){
  2.  
  3. $count = $this->pdo->query("SELECT COUNT(*) FROM `logs`");
  4. $count = $count->fetch();
  5. if($count[0]>$value){
  6. $limit = $count[0] - $value;
  7. $result = $pdo->exec("INSERT INTO baza2.logs SELECT * FROM baza1.logs ORDER BY `created_at` ASC LIMIT ".$limit);
  8. }
  9. }
Go to the top of the page
+Quote Post
kamil_lk
post 11.02.2014, 19:44:35
Post #10





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Okazało się, że moja metoda działa, ale tylko lokalnie.
Po podpięciu bazy na serwerze już nie. Zapewne są jakieś ograniczenia na to, czy może się mylę?
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 06:17