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

Скопировать таблицу в БД MySQL можно при помощи PhpMyAdmin в меню операции - копировать.. в окошке вводим имя новой таблицы (при необходимости можно выбрать другую базу - текущий пользователь должен иметь доступ к этой базе с привилегией создания таблиц)

Скопировать таблицу в MySQL без PhpMyAdmin, можно простым запросом:
К примеру, чтобы скопировать таблицу posts из базы данных mydb (если обе таблицы находятся в одной базе, то использовать mydb. не обязательно) в таблицу posts_bak (структуру и все записи)

CREATE TABLE posts_bak LIKE mydb.posts;
INSERT posts_bak SELECT * FROM mydb.posts;

CREATE TABLE - создаёт таблицу.. все поля при этом берутся из указанной после LIKE таблицы - в данном случае копируем таблицу posts, которая в базе данных с именем mydb.

INSERT SELECT - вставляет все записи, выбранные из другой таблицы. INSERT корректно работает без INTO - это не опечатка.

UPD В MySQL можно скопировать таблицу одним запросом
CREATE TABLE `posts_bak` SELECT * FROM `mydb`.`posts`;

Однако, этот способ только копирует данные.. при этом внешние ключи, и autoincrement может не скопироваться. Строго говоря, наиболее правильный способ копирования таблицы - использование mysqldump, замена имени таблицы на новое и последующий импорт полученного файла. Однако, для сохранения резервной копии с возможностью быстрого отката данных, вариант копирования одной строкой вполне приемлемый

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Добавить комментарий