Отправить заявку

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

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

Для того, чтобы создать новую таблицу на основе существующей т.е. скопировать структуру одной таблицы в другую, нужно выполнить команду:

CREATE <new_table> LIKE <original_table>

Рассмотрим пример.
У нас есть таблица из известной базы TECDOC. Она имеет структуру:

CREATE TABLE `ARTICLES` (
  `ART_ID` int(11) NOT NULL,
  `ART_ARTICLE_NR` varchar(66) NOT NULL,
  `ART_SUP_ID` smallint(6) DEFAULT NULL,
  `ART_DES_ID` int(11) DEFAULT NULL,
  `ART_COMPLETE_DES_ID` int(11) DEFAULT NULL,
  `ART_PACK_SELFSERVICE` smallint(6) DEFAULT NULL,
  `ART_MATERIAL_MARK` smallint(6) DEFAULT NULL,
  `ART_REPLACEMENT` smallint(6) DEFAULT NULL,
  `ART_ACCESSORY` smallint(6) DEFAULT NULL,
  `ART_BATCH_SIZE1` int(11) DEFAULT NULL,
  `ART_BATCH_SIZE2` int(11) DEFAULT NULL,
  `art_url` varchar(255) NOT NULL DEFAULT '',
  `art_url2` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`ART_ID`),
  KEY `ART_SUP_ID` (`ART_SUP_ID`),
  KEY `ART_DES_ID` (`ART_DES_ID`),
  KEY `ART_COMPLETE_DES_ID` (`ART_COMPLETE_DES_ID`),
  KEY `ART_ARTICLE_NR` (`ART_ARTICLE_NR`(18))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Для тестов нам необходимо скопировать структуру этой таблицы в таблицу `ARTICLES_TEST`.
Выполняем команду:

CREATE ARTICLES LIKE ARTICLES_TEST

Сервер MySQL создаст абсолютно идентичную структуру таблицы с индексами, но без данных.

Другие публикации