English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Копирование таблицы SQL

В этом руководстве вы узнаете, как создать копию существующей таблицы.

Клонирование или копирование таблицы

В некоторых случаях вы можете захотеть создать точную копию или клон существующей таблицы для тестирования или выполнения某些 операций, не затрагивая исходную таблицу.

В следующем разделе将通过 несколько простых шагов объяснить, как выполнить эту операцию.

Шаг 1: Создание пустой таблицы

Сначала используйте следующее предложение для создания пустой таблицы на основе определения исходной таблицы. Это также включает атрибуты столбцов и индексы, определенные в исходной таблице:

CREATE TABLE new_table LIKE original_table;

Шаг 2: Вставка данных в таблицу

Теперь используйте следующее предложение для заполнения пустой таблицы данными из исходной таблицы:

INSERT INTO new_table SELECT * FROM original_table;

Давайте используем инструмент командной строки MySQL для клонирования таблицы.

Рассмотрим насemployeesв базе данных есть таблица, содержащая следующие записи:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

Выполните следующий SQL-запрос, который вставит данные из существующейemployeesОпределение базы данных таблицы создает пустую таблицуemployees_clone.

 employees_clone  employees;

Теперь выполните другой SQL-запрос, который вставит все записи из таблицы employee в таблицу employees_clone. После выполнения этого запроса у вас будет таблица employee_clone, которая является точной копией или дубликатом таблицы employee.

 employees_clone  *  employees;

Простое клонирование

Но если вы хотите создать таблицу из другой таблицы, не учитывая никаких свойств столбцов и индексов, вы можете использовать простую строку:

CREATE TABLE new_table SELECT * FROM original_table;

Следующие команды создаютemployeesПростая копия таблицы.

 employees_dummy  *  employees;

Совет:Использование синтаксиса CREATE TABLE ... SELECT позволяет быстро создать простую копию таблицы, которая содержит только структуру и данные исходной таблицы.