Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да дублирам таблица в MySQL

Понякога може да се наложи да копирате данни от една таблица в друга в MySQL или да копирате таблици в MySQL. Ето как да дублирате таблица в MySQL. Можете да го използвате, за да клонирате таблица в MySQL или да копирате структура на таблицата, или дори да копирате таблица от една база данни в друга.

Как да дублирам таблица в MySQL

Ето стъпките за дублиране на таблица в MySQL. Има различни случаи на използване за копиране на данни от една таблица в друга. Ще разгледаме всеки от тях подробно.

MySQL Копиране на данни от една таблица в нова таблица

Ако трябва да дублирате таблица в MySQL в нова таблица, трябва да използвате израз CREATE TABLE и SELECT, както е показано по-долу

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

Да приемем, че имате съществуваща таблица продукти

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

Ето SQL заявката за копиране на продукти таблица в нова таблица, наречена нови_продукти

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 |
+------------+--------------------+-------+

Важно е да се отбележи, че новата таблица ще бъде създадена само ако не съществува. В противен случай ще получите грешка. За да избегнете грешка, когато дублирате таблица в MySQL, можете да използвате IF NOT EXIST в израза CREATE TABLE, както е показано по-долу.

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

Бонус четене:MySQL Съхранена процедура с параметри

За да копирате само частични данни от една таблица в нова таблица, можете да използвате условие WHERE във вашия оператор SELECT, както е показано

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

Ето SQL заявката за копиране на частични данни от продукти таблица в нова таблица, наречена нови_продукти2

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 |
+------------+--------------+-------+

Бонус за четене:Как да създадете композитен първичен ключ в MySQL

MySQL Копиране на структурата на таблицата в нова таблица

Горните заявки копират само таблица и данни. Те няма да копират таблични обекти като първичен ключ, индекси, ограничения, тригери. За да копирате структурата и данните на таблицата, трябва да използвате израз CREATE TABLE с ключова дума LIKE, както е показано по-долу

CREATE TABLE IF NOT EXISTS new_table LIKE existing_table;

Да приемем, че имате поръчки таблица с първичен ключ

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 |                |
+--------------+--------------+------+-----+-------------------+----------------+

и искате да копирате структура на поръчки до нови_поръчки маса. Ето SQL заявката за копиране на структурата на таблицата в нова таблица.

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 |                |
+--------------+--------------+------+-----+-------------------+----------------+

Бонус за четене:Как да съкратите таблицата в MySQL

MySQL Копиране на данни от една таблица в съществуваща таблица

Горното изявление ще създаде нова таблица със структура на старата таблица. След това трябва да използвате оператор INSERT, за да копирате данни от стара таблица в нова таблица.

INSERT new_table
SELECT * FROM existing_table;

Ето SQL заявката за копиране на данни от поръчки към съществуваща таблица 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 |
+----+--------------+------------+-------+-------------+---------------------+

Бонус четене:MySQL DROP VIEW

Таблица за копиране на MySQL от една база данни в друга

Ако искате да дублирате таблица в MySQL от база данни в друга, просто включете имената на базата данни в имената на вашите таблици, както е показано по-долу с удебелен шрифт

CREATE TABLE destination_db.new_table 
LIKE source_db.existing_table;

INSERT destination_db.new_table 
SELECT *
FROM source_db.existing_table;

Първият израз ще дублира структурата на таблицата в MySQL от изходна база данни (напр. source_db) в друга (напр. destination_db). Вторият израз ще копира данни от една таблица в друга.

Заменете source_db и destination_db в горните заявки съответно с изходна и дестинационна база данни.

Надяваме се, че тази статия ще ви помогне да дублирате таблица в MySQL. Моля, бъдете внимателни, когато дублирате таблица в MySQL с голям брой записи, тъй като това може да отнеме много време и ресурси.

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Премахване на дублиращи се записи

  2. Как да промените MySQL/MariaDB порт по подразбиране в Linux

  3. Пребройте редовете в таблицата

  4. Как да импортирам .sql файл в mysql база данни с помощта на PHP?

  5. Как да изчислим медиана в MySQL