Chcę skopiować tabelę zawartą z jednej bazy danych i wstawić do innej tabeli bazy danych


96

Chcę skopiować schemat tabeli, a także dane z tej tabeli do innej tabeli bazy danych w innej bazie danych na aktywnym serwerze. Jak mogłem to zrobić?


użyj dwóch połączeń z bazą danych i przeczytaj strukturę tabeli z jednego i uruchom to zapytanie w drugim
Dau,

Czy te bazy danych znajdują się w oddzielnych instancjach mysql, czy na tej samej? Replikację można skonfigurować w różnych instancjach, jeśli jest to proces ciągły.
Nick,

@Nick Moje bazy danych znajdują się w różnych instancjach mysql. Czy mógłbyś wyjaśnić, jak to skopiować?
johk95,

Odpowiedzi:


218

Jeśli chcesz skopiować tabelę z jednej bazy danych do innej, możesz po prostu wykonać poniższe czynności.

CREATE TABLE db2.table LIKE db1.table;
INSERT INTO db2.table SELECT * FROM db1.table;

2
Świetne rozwiązanie, jeśli tabela nie ma ograniczeń związanych z kluczem obcym. Użyłem tego do zrobienia kopii całej bazy danych zamiast tylko jednej tabeli. W tym celu polecam użycie polecenia mysqldump.
thorne51

MySQL może teraz przechowywać dane tabeli w pojedynczych plikach (a pliki frm są również dla każdej tabeli). Takie podejście bez wątpienia zadziałałoby, ale w przypadku ogromnych baz danych jest powolne. Czy jest może inny sposób?
Alex Kovshovik

1
Działa to tylko wtedy, gdy bazy danych znajdują się na tym samym serwerze.
zgr024

10

lub po prostu UTWÓRZ TABELĘ db2.table SELECT * FROM db1.table w MySQL 5


4
To nie kopiuje rzeczy, takich jak index. Po prostu tworzy tabelę na podstawie zestawu krotek. Prawdopodobnie nie chcesz tego robić.
BenMQ

Tak, to zapytanie nie kopiuje indexe
XxXk5XxX,



2

Jeśli chcesz tylko skopiować Strukturę, po prostu użyj

CREATE TABLE Db_Name.table1 LIKE DbName.table2;

Ps>, który nie skopiuje schematu i danych



0

W linii poleceń:

mysqldump -h localhost -u username -ppassword [SCHEMA] --tables [TABLE] | mysql -h otherhost -u username -ppassword [SCHEMA2]

Spowoduje to skopiowanie tabeli wewnątrz SCHEMA na hoście lokalnym do SCHEMA2 na innym hoście.

localhost i otherhost to po prostu nazwa hosta i mogą być takie same lub różne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.