Клонирование таблицы в MySQL или MariaDB - распространенная задача для администраторов и разработчиков баз данных. Это может быть полезно для тестирования, резервного копирования или переноса данных из одной таблицы в другую.
Клонирование или копирование таблицы требует создания новой таблицы с той же структурой, что и исходная, и копирования данных из исходной таблицы в новую.
Для клонирования таблицы в MySQL или MariaDB можно использовать операторы SQL. Оператор CREATE TABLE позволяет создать новую таблицу на основе структуры существующей таблицы. Оператор INSERT INTO позволяет скопировать данные из одной таблицы в другую. Вы можете быстро и легко клонировать таблицу в MySQL или MariaDB, комбинируя эти операторы.
Шаги для копирования таблицы MySQL или MariaDB
Войдите на сервер MySQL или MariaDB с помощью клиента mysql как административный пользователь или пользователь с соответствующим доступом.
1 | mysql -u root -p |
Измените базу данных по умолчанию на ту, которая содержит таблицу, которую вы хотите клонировать.
1 | USE employees; |
Проверьте существующую, исходную таблицу для подтверждения.
1 | SHOW TABLES; |
Создайте таблицу с той же структурой, что и исходная таблица.
1 | CREATE TABLE employees_new LIKE employees; |
Это просто создаст новую пустую таблицу и не будет копировать последующие данные:
- Определения внешних ключей
- Директорию данных
- Каталог индексов
- Данные
Целевая таблица может находиться как в той же базе данных, так и в другой. Если в другой, укажите имя базы данных в запросе следующим образом:
1 | database_name.table_name |
Убедитесь, что у вас есть соответствующие разрешения на связанные базы данных и таблицы.
Проверьте клонированную таблицу.
1 | DESCRIBE employees_new; |
Эта команда покажет структуру новой таблицы, что позволит вам убедиться в ее сходстве с исходной таблицей.
Скопируйте данные в новую таблицу из исходной таблицы.
1 | INSERT INTO employees_new SELECT * FROM employees; |
Проверьте скопированные записи, чтобы убедиться, что операция прошла успешно.
1 | SELECT * FROM employees_new; |