Резервная копия таблицы в той же базе данных
Данная заметка расскажет как сделать копию таблицы в интерфейсе командной строки MySQL/MariaDB. Обычно резервные копии баз данных и таблиц сохраняют в файлы, но рассмотрим ситуацию, когда нужно дублировать или клонировать данные, структуру и индексы таблиц в ту же или другую базу данных в интерфейсе интерфейсе командной строки MySQL/MariaDB.
Смотрите также: Как скопировать таблицу в phpMyAdmin
Клонирование таблицы — это удобный способ сделать резервную копию на время разработки и отладки приложения. Если приложение испортило таблицу, то очень легко удалить, а затем восстановить таблицу из резервной, которая находится в этой же базе данных.
Для резервного копирования на случай сбоя в работе СУБД, конечно же, нужно сохранять копии таблиц и баз данных в файлы, которые должны храниться на ещё одном носителе.
Как сделать копию таблицы в MySQL/MariaDB в ту же базу данных
Рассмотрим два варианта:
- Нужно скопировать структуру таблицы, её данные, а также индексы и триггеры
- Нужно скопировать только структуру таблицы и её данные
Первый вариант позволяет создать полный клон таблицы. Во втором случае данные и структура продублированной таблицы также будут соответствовать оригиналу — этот вариант подойдёт большинству пользователей.
Итак, чтобы скопировать таблицу, в том числе её структуру, данные, индексы и тригеры выполните следующие два запроса:
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;
Связанные статьи:
- Как скопировать таблицу в phpMyAdmin (100%)
- Ошибка «Failed - Network error» во время экспорта в phpMyAdmin (РЕШЕНО) (65%)
- Как переименовать таблицу в phpMyAdmin и MySQL (65%)
- Как в MySQL результаты запроса сохранить в новую таблицу (65%)
- Как в MySQL / MariaDB вывести список столбцов. Как в PHP проверить наличие столбца в таблице (65%)
- Как удалить все записи в таблице в phpMyAdmin (RANDOM - 50%)