Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zduplikować tabelę w MySQL

Czasami może być konieczne skopiowanie danych z jednej tabeli do drugiej w MySQL lub skopiowanie tabel w MySQL. Oto jak zduplikować tabelę w MySQL. Możesz go użyć do klonowania tabeli w MySQL lub kopiowania struktury tabeli, a nawet kopiowania tabeli z jednej bazy danych do drugiej.

Jak powielić tabelę w MySQL

Oto kroki do zduplikowania tabeli w MySQL. Istnieją różne przypadki użycia do kopiowania danych z jednej tabeli do drugiej. Przyjrzymy się każdemu z nich szczegółowo.

MySQL Kopiuj dane z jednej tabeli do nowej

Jeśli chcesz zduplikować tabelę w MySQL do nowej tabeli, musisz użyć instrukcji CREATE TABLE i SELECT, jak pokazano poniżej

CREATE TABLE new_table 
SELECT column, column2, column3 
FROM
    existing_table;

Załóżmy, że masz już tabelę produkty

mysql> select * from products;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

Oto zapytanie SQL do skopiowania produktów tabeli do nowej tabeli o nazwie new_products

mysql> create table new_products
       select *
       from products;

mysql> select * from new_products;
+------------+--------------------+-------+
| product_id | product_name       | price |
+------------+--------------------+-------+
|          1 | iPhone 11          |   400 |
|          2 | Samsung Galaxy A50 |   250 |
+------------+--------------------+-------+

Należy pamiętać, że nowa tabela zostanie utworzona tylko wtedy, gdy nie istnieje. W przeciwnym razie otrzymasz błąd. Aby uniknąć błędu podczas duplikowania tabeli w MySQL, możesz użyć IF NOT EXIST w instrukcji CREATE TABLE, jak pokazano poniżej.

mysql> create table if not exist new_products
       select *
       from products;

Przeczytaj bonus:Procedura przechowywana MySQL z parametrami

Aby skopiować tylko częściowe dane z jednej tabeli do nowej, możesz użyć warunku WHERE w instrukcji SELECT, jak pokazano

CREATE TABLE new_table 
SELECT column1, column2, column3 
FROM
    existing_table
WHERE
    conditions;

Oto zapytanie SQL służące do kopiowania częściowych danych z produktów tabeli do nowej tabeli o nazwie new_products2

mysql> create table new_products2
       select *
       from products
       where product_id=1;

mysql> select * from new_products2;
+------------+--------------+-------+
| product_id | product_name | price |
+------------+--------------+-------+
|          1 | iPhone 11    |   400 |
+------------+--------------+-------+

Przeczytaj bonus:Jak utworzyć złożony klucz podstawowy w MySQL

MySQL Kopiuj strukturę tabeli do nowej tabeli

Powyższe zapytania kopiują tylko tabelę i dane. Nie będą kopiować obiektów tabeli, takich jak klucz podstawowy, indeksy, ograniczenia, wyzwalacze. Aby skopiować strukturę i dane tabeli, musisz użyć instrukcji CREATE TABLE ze słowem kluczowym LIKE, jak pokazano poniżej

CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;

Załóżmy, że masz zamówienia tabela z kluczem podstawowym

mysql> describe orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

i chcesz skopiować strukturę zamówień do nowych_zamówień stół. Oto zapytanie SQL do skopiowania struktury tabeli do nowej tabeli.

mysql> create table new_orders like orders;

mysql> describe new_orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

Przeczytaj bonus:Jak przyciąć tabelę w MySQL

MySQL Kopiuj dane z jednej tabeli do istniejącej

Powyższe stwierdzenie utworzy nową tabelę ze strukturą starej tabeli. Następnie musisz użyć instrukcji INSERT, aby skopiować dane ze starej tabeli do nowej.

INSERT new_table
SELECT * FROM existing_table;

Oto zapytanie SQL do kopiowania danych z zamówień do istniejącej tabeli new_orders

mysql> insert new_orders
       select * from orders;

mysql> select * from orders;
+----+--------------+------------+-------+-------------+---------------------+
| id | product_name | order_date | price | description | created_at          |
+----+--------------+------------+-------+-------------+---------------------+
|  1 | A            | 2020-07-01 |   150 | New product | 2020-06-01 00:00:00 |
|  2 | B            | 2020-07-01 |   235 | Old product | 2020-06-15 00:00:00 |
+----+--------------+------------+-------+-------------+---------------------+

Przeczytaj bonus:MySQL DROP VIEW

MySQL Kopiuj tabelę z jednej bazy danych do drugiej

Jeśli chcesz zduplikować tabelę w MySQL z bazy danych do innej, po prostu uwzględnij nazwy baz danych w nazwach tabel, jak pokazano poniżej pogrubioną czcionką

CREATE TABLE destination_db.new_table 
LIKE source_db.existing_table;

INSERT destination_db.new_table 
SELECT *
FROM source_db.existing_table;

Pierwsza instrukcja powieli strukturę tabeli w MySQL ze źródłowej bazy danych (np. source_db) do innej (np. destination_db). Druga instrukcja skopiuje dane z jednej tabeli do drugiej.

Zastąp source_db i destination_db w powyższych zapytaniach z odpowiednio źródłowymi i docelowymi bazami danych.

Mamy nadzieję, że ten artykuł pomoże ci zduplikować tabelę w MySQL. Zachowaj ostrożność podczas duplikowania tabeli w MySQL z dużą liczbą rekordów, ponieważ może to zająć dużo czasu i zasobów.

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_SEARCH() – Znajdź ścieżkę do ciągu w dokumencie JSON w MySQL

  2. DODAJ KOLUMNĘ MySQL

  3. Wyszukaj tekst w polach w każdej tabeli bazy danych MySQL

  4. Sprawdź nakładanie się zakresów dat w MySQL

  5. Importuj dane do bazy danych MySQL