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