Jak skopiować tabelę w MySQL

Jak skopiować tabelę w MySQL
Istnieją pewne przypadki, w których może być konieczne skopiowanie określonej tabeli z tej samej lub innej bazy danych. Na przykład podczas wykonywania kopii zapasowych lub migracji może być konieczne przywrócenie tabeli bez przywracania całej bazy danych.

Ten samouczek przejdzie, jak skopiować tabelę z bazy danych do innej tabeli za pomocą MySQL Utwórz i wybierz klauzule.

Przypadków użycia

Pierwszym przypadkiem, w którym musimy skopiować tabelę, jest kopiowanie określonych danych z istniejącej tabeli do nowej. Na przykład w przykładowej bazie danych Sakila możemy skopiować określone informacje z tabeli filmowej do nowej tabeli o nazwie Film_Revised.

Rozważ pytanie poniżej, aby wykonać taką operację:

Utwórz bazę danych copy_tb;
Użyj copy_tb;
Utwórz tabelę Film_revised Select Title, Release_year, Długość, Ocena z Sakila.film;

Po wykonaniu powyższego zapytania możemy wyświetlić dane przechowywane w tabeli za pomocą instrukcji MySQL Select, jak pokazano na poniższym wyjściu:

mysql> Wybierz * z filmu_revised limit 10;
+------------------+--------------+--------+--------+
|. Tytuł | wydanie_year | długość | Ocena |
+------------------+--------------+--------+--------+
|. Akademia dinozaur | 2006 | 86 | PG |
|. Ace Goldfinger | 2006 | 48 | G |
|. Adaptacyjne dziury | 2006 | 50 | NC-17 |
|. Uprzedzenie romansowe | 2006 | 117 | G |
|. Jajko afrykańskie | 2006 | 130 | G |
|. Agent Truman | 2006 | 169 | PG |
|. Samolot Sierra | 2006 | 62 | PG-13 |
|. Airport Pollock | 2006 | 54 | R |
|. Alabama Devil | 2006 | 114 | PG-13 |
|. Kalendarz Aladdin | 2006 | 63 | NC-17 |
+------------------+--------------+--------+--------+
10 wierszy w zestawie (0.00 s)

Jak widać, możemy tworzyć nowe tabele z wybranymi informacjami z istniejących tabel bez zmiany danych w oryginalnej bazie danych.

NOTATKA: Kopiowanie tabeli za pomocą tabeli Utwórz i Wybierz instrukcje tylko kopiuje tabelę i jej dane. Nie kopiuje obiektów, takich jak indeksy, wyzwalacze, ograniczenia klawiszy podstawowych itp., podłączony do oryginalnej tabeli.

Kopiuj tabelę + obiekty

Aby skopiować tabelę + dane i wszystkie powiązane obiekty, używamy instrukcji podobnej, a następnie instrukcji Insert, jak pokazano w pytaniu poniżej:

Utwórz tabelę_copy jak Sakila.film;
Wstaw film_copy Wybierz * z Sakila.film;

Powyższe zapytanie skopiuje wszystko z oryginalnej tabeli do nowej, w tym wskaźniki, klawisze podstawowe, ograniczenia i inne obiekty podłączone do oryginalnej tabeli.

NOTATKA: Zachowaj ostrożność podczas korzystania z instrukcji kopii na masywnych tabelach, ponieważ mogą one wykorzystać więcej zasobów i poświęcić dużo czasu.

Kopiuj tabele z oddzielnych baz danych

Jeśli chcesz skopiować tabelę z różnych baz danych, możesz odwołać się do bazy danych za pomocą DOT (.) notacja.

Na przykład zacznij od utworzenia nowej bazy danych jako:

Utwórz bazę danych, jeśli nie istnieje multi_db;

Następnie użyj składni pokazanej wcześniej, aby skopiować tabelę ze starej bazy danych do nowej. Zobacz zapytanie poniżej:

Utwórz tabelę multi_db.NEW_TB Like Sakila.film;
Włóż multi_db.new_tb Wybierz * z Sakila.film;

To skopiuje tabelę filmów z bazy danych Sakila do nowej i wyświetli dane wyjściowe, jak pokazano poniżej:

Zapytanie OK, 1000 rzędów (0.03 s)
Rekordy: 1000 duplikatów: 0 Ostrzeżenia: 0

Możesz użyć instrukcji Select, aby sprawdzić, czy dane zostały pomyślnie skopiowane.

Wniosek

Ten szybki przewodnik przeszedł na sposób korzystania z MySQL Utwórz tabelę i wybierz instrukcje, aby skopiować określone kolumny z tabeli do nowej tabeli.

Przyjrzeliśmy się również, jak skopiować wszystkie dane, w tym obiekty powiązane z oryginalną tabelą, do nowej tabeli.

Na koniec omówiliśmy, jak kopiować tabele z jednej bazy danych do drugiej.

Dziękuję za przeczytanie.