Как клонировать/копировать таблицу в MySQL

Чтобы скопировать/склонировать все данные таблицы в новую таблицу, можно использовать следующий запрос:

CREATE TABLE new_table AS SELECT * FROM original_table;

При использовании этого запроса для дублирования больших таблиц. Это может занять много времени и ресурсов сервера.

Также важно отметить, что new_table наследует ТОЛЬКО:

  • названия колонок.
  • null параметры.
  • и значения по умолчанию из original_table.

ВАЖНО: индексы и автоинкременты не наследуются.

Клонирование таблицы со всей её структурой

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

Копируем структуру таблицы:

CREATE TABLE new_table LIKE original_table;

Это сделает структуру new_table точно такой же, как у original_table, но НЕ скопирует данные.

Чтобы скопировать данные, сделайте такой запрос:

INSERT INTO new_table SELECT * FROM original_table;

Опять же, будьте осторожны, когда делаете это с большими таблицами.