SQL — Точная копия таблицы

SQL — Точная копия таблицы

От автора: у вас может возникнуть ситуация, когда вам нужна в SQL копия таблицы, а команды CREATE TABLE … или SELECT … не подходят для ваших целей, потому что копия должна содержать те же индексы, значения по умолчанию и т. д.

Если вы используете MySQL RDBMS, вы можете справиться с этой ситуацией, выполнив описанные ниже действия:

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

Измените инструкцию, чтобы изменить имя для клонированной таблицы и выполните эту инструкцию. Таким образом, вы получите точную копию исходной таблицы.

Опционально, если вам нужно также скопировать содержимое таблицы, вы можете ввести инструкцию INSERT INTO или SELECT.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Пример

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

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

SQL> SHOW CREATE TABLE TUTORIALS_TBL \G; 
*************************** 1. row *************************** 
 Table: TUTORIALS_TBL 
Create Table: CREATE TABLE 'TUTORIALS_TBL' ( 
  'tutorial_id' int(11) NOT NULL auto_increment, 
  'tutorial_title' varchar(100) NOT NULL default '', 
  'tutorial_author' varchar(40) NOT NULL default '', 
  'submission_date' date default NULL, 
  PRIMARY KEY  ('tutorial_id'), 
  UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author') 
) TYPE = MyISAM 
1 row in set (0.00 sec)

Шаг 2 — Переименуйте эту таблицу и создайте другую таблицу.

SQL> CREATE TABLE `CLONE_TBL` ( 
  -> 'tutorial_id' int(11) NOT NULL auto_increment, 
  -> 'tutorial_title' varchar(100) NOT NULL default '', 
  -> 'tutorial_author' varchar(40) NOT NULL default '', 
  -> 'submission_date' date default NULL, 
  -> PRIMARY KEY  (`tutorial_id'), 
  -> UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author') 
-> ) TYPE = MyISAM; 
Query OK, 0 rows affected (1.80 sec) 

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

SQL> INSERT INTO CLONE_TBL (tutorial_id, 
  -> tutorial_title, 
  -> tutorial_author, 
  -> submission_date) 
  -> SELECT tutorial_id,tutorial_title, 
  -> tutorial_author,submission_date, 
  -> FROM TUTORIALS_TBL; 
Query OK, 3 rows affected (0.07 sec) 
Records: 3  Duplicates: 0  Warnings: 0 

В результате вы получите точную копию исходной таблицы.

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Хотите изучить MySQL?

Прямо сейчас посмотрите 24-х часовой курс по базе данных MySQL!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree