Дублирование таблицы MySQL, индексов и данных
Как скопировать / клонировать / дублировать данные, структуру и индексы таблицы MySQL в новую?
это то, что я нашел до сих пор.
это скопирует данные и структуру, но не индексы:
create table {new_table} select * from {old_table};
это скопирует структуру и индексы, но не данные:
create table {new_table} like {old_table};
7 ответов:
для копирования с индексами и триггерами выполните следующие 2 запроса:
CREATE TABLE newtable LIKE oldtable; INSERT newtable SELECT * FROM oldtable;чтобы скопировать только структуру и данные используйте этот:
CREATE TABLE tbl_new AS SELECT * FROM tbl_old;Я уже спрашивал об этом раньше:
помимо решения выше, вы можете использовать
ASчтобы сделать это в одной строке.CREATE TABLE tbl_new AS SELECT * FROM tbl_old;
MySQL Way
CREATE TABLE recipes_new LIKE production.recipes; INSERT recipes_new SELECT * FROM production.recipes;
Я нашел ту же ситуацию и подход, который я взял был следующим: 1. Execute SHOW CREATE TABLE : это даст вам синтаксис Create Table для таблицы, которую вы хотите клонировать 2. Запустите запрос создать таблицу, изменив имя таблицы для клонирования таблицы.
Это создаст точную копию таблицы, которую вы хотите клонировать вместе с индексами. Единственное, что вам тогда нужно, это переименовать индексы (если требуется).
после того, как попробовал выше решение. Я придумываю свой собственный путь.
мое решение немного вручную и нужна СУБД.
сначала экспортируйте данные.
во-вторых откройте экспорт данных.
третий заменить старое имя таблицы с новым именем таблицы.
четвертое изменение всего имени триггера в данных (я использую mysql, и он показывает ошибку, когда я не изменяю имя триггера)
пятый импорт отредактированных данных sql в базу данных.
для MySQL
CREATE TABLE newtable LIKE oldtable ; INSERT newtable SELECT * FROM oldtable ;ДЛЯ MSSQL Используйте
MyDatabase:Select * into newCustomersTable from oldCustomersTable;этот SQL используется для копирования таблиц, здесь содержимое oldCustomersTable будет скопировано в
newCustomersTable.
Убедитесь, чтоnewCustomersTableне существуют в базе данных.

Comments