English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Копирование таблиц MySQL

Если нам нужно полностью скопировать таблицу данных MySQL, включая структуру таблицы, индексы, значения по умолчанию и т.д. Если использовать толькоCREATE TABLE ... SELECT команда, не может быть реализована.

В этой главе мы расскажем, как полностью скопировать таблицу данных MySQL, шаги следующие:

  • Использование SHOW CREATE TABLE команда для получения создания таблицы данных (CREATE TABLE) утверждение, которое включает структуру исходной таблицы данных и индексы.

  • Скопируйте команду SQL, отображаемую следующим образом, измените имя таблицы данных и выполните команду SQL, используя вышеуказанные команды полностью скопировать структуру таблицы данных.

  • Если вы хотите скопировать содержимое таблицы, вы можете использовать INSERT INTO ... SELECT для выполнения этой операции.

Онлайн пример

Попробуйте следующий пример для копирования таблицы w3codebox_tbl.

Шаг 1:

Получите полную структуру таблицы.

mysql> SHOW CREATE TABLE w3codebox_tbl \G;
*************************** 1. строка ***************************
       Таблица: w3codebox_tbl
Создание таблицы: CREATE TABLE `w3codebox_tbl` (
  `w3codebox_id` int(11) NOT NULL auto_increment,
  `w3codebox_title` varchar(100) NOT NULL default '',
  `w3codebox_author` varchar(40) NOT NULL default '',
  `submission_date` date default NULL,
  Основной ключ (`w3codebox_id`),
  Уникальный ключ `AUTHOR_INDEX` (`w3codebox_author`)
) ENGINE=InnoDB 
1 строка в наборе (0.00 сек)
ОШИБКА:
Не указан запрос

Шаг 2:

Измените имя таблицы в SQL-запросе и выполните запрос.

mysql> CREATE TABLE `clone_tbl` (
  -> `w3codebox_id` int(11) NOT NULL auto_increment,
  -> `w3codebox_title` varchar(100) NOT NULL default '',
  -> `w3codebox_author` varchar(40) NOT NULL default '',
  -> `submission_date` date default NULL,
  -> Основной ключ (`w3codebox_id`),
  -> Уникальный ключ `AUTHOR_INDEX` (`w3codebox_author`)
-> ENGINE=InnoDB;
Запрос выполнен успешно, 0 строк изменено (1.80 сек)

Шаг три:

После выполнения второго шага, вы создадите новую клонированную таблицу clone_tbl в базе данных. Если вы хотите скопировать данные таблицы, вы можете использовать INSERT INTO... SELECT для выполнения этой операции.

mysql> INSERT INTO clone_tbl (w3codebox_id,
    ->                       w3codebox_title,
    ->                       w3codebox_author,
    ->                       submission_date)
    -> SELECT w3codebox_id,w3codebox_title,
    ->         w3codebox_author, submission_date
    -> FROM w3codebox_tbl;
Запрос OK, 3 строки изменены (0.07 sec)
Записи: 3  Дубликаты: 0  Предупреждения: 0

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