Как клонировать/копировать таблицу в 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;
Опять же, будьте осторожны, когда делаете это с большими таблицами.