Yandex Metrika
sanches.free 1 просмотр

Копировать таблицу MySQL со структурой и данными: LIKE и INSERT INTO … SELECT

Когда нужен полный дубликат

Иногда снимок нужен для экспериментов, миграции на отдельный инстанс или разовой операции перед сложным ALTER: удобно получить вторую таблицу с той же схемой и всем содержимым. В MySQL для этого традиционно комбинируют CREATE TABLE … LIKE и INSERT INTO … SELECT *.

Структура без строк

Клонирование определения (столбцы, индексы, параметры строки там, где движок это поддерживает для LIKE) без данных:

CREATE TABLE `destination_table` LIKE `source_table`;

Имена таблиц указывайте с реальными префиксами платформы, если они используются в проекте. После этого новая таблица пуста, но готова к заполнению.

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

Когда структуры совпадают построчно, достаточно одного прохода:

INSERT INTO `destination_table` SELECT * FROM `source_table`;

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

Совмещённый минимальный сценарий

Типовая последовательность «копия за два шага» выглядит так:

CREATE TABLE `destination_table` LIKE `source_table`;

INSERT INTO `destination_table` SELECT * FROM `source_table`;

Замечания на практике

  • AUTO_INCREMENT следующего значения после INSERT на целевой таблице выставится движком исходя из фактических данных — при необходимости проверьте его отдельно.
  • Если колонки не совпадают по порядку или нужна выборочная копия, перечислите явный список полей и выражений вместо *.
  • Права доступа должны включать создание объектов и вставку в целевую схему; на продакшене такие операции лучше планировать в окно без пиковой нагрузки.

В контексте «1С‑Битрикс»

Сами запросы не специфичны для CMS: их выполняют через консоль администрирования MySQL, миграцию или любой утилитарный вход к базе, которым вы уже пользуетесь для сопровождения проекта. Для задач изменения только схемы ORM см. также приёмы синхронизации полей после правок классов данных.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии