zaLinux.ru

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


Резервная копия таблицы в той же базе данных

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

Смотрите также: Как скопировать таблицу в phpMyAdmin

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

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

Как сделать копию таблицы в MySQL/MariaDB в ту же базу данных

Рассмотрим два варианта:

  1. Нужно скопировать структуру таблицы, её данные, а также индексы и триггеры
  2. Нужно скопировать только структуру таблицы и её данные

Первый вариант позволяет создать полный клон таблицы. Во втором случае данные и структура продублированной таблицы также будут соответствовать оригиналу — этот вариант подойдёт большинству пользователей.

Итак, чтобы скопировать таблицу, в том числе её структуру, данные, индексы и тригеры выполните следующие два запроса:

CREATE TABLE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;

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


CREATE TABLE new_table AS SELECT * FROM old_table;

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

Выбираем базу данных для использования:

USE TestDB;

Выводим список таблиц:

SHOW TABLES;

Делаем копию таблицы TestTABLE в таблицу с названием TestTABLE_backup:

CREATE TABLE TestTABLE_backup AS SELECT * FROM TestTABLE;

Всё готово, теперь убеждаемся, что таблица действительно создана:

SHOW TABLES;

Как копировать таблицу в MySQL/MariaDB в другую базу данных

Для начала создайте базу данных, если она не существует.

Чтобы скопировать таблицу, в том числе её структуру, данные, индексы и тригеры в новую базу данных выполните следующие два запроса:

CREATE TABLE new_db.new_table LIKE old_db.old_table;
INSERT INTO new_db.new_table SELECT * FROM old_db.old_table;

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

CREATE TABLE new_db.new_table AS SELECT * FROM old_db.old_table;

Рассмотрим конкретный пример.

Создаём новую базу данных с названием TestDB_backup:

CREATE DATABASE TestDB_backup;

Клонируем в базу данных TestDB_backup таблицу TestTABLE из базы данных TestDB:


CREATE TABLE TestDB_backup.TestTABLE AS SELECT * FROM TestDB.TestTABLE;

Всё готово, теперь убеждаемся, что таблица действительно создана:

SHOW TABLES in TestDB_backup;


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *