Как мне скопировать или клонировать или дублировать данные, структуру и индексы таблицы MySQL в новую?
Это то, что я нашел до сих пор.
Это скопирует данные и структуру, но не индексы:
create table {new_table} select * from {old_table};
Это скопирует структуру и индексы, но не данные:
create table {new_table} like {old_table};
Ответы:
Для копирования с индексами и триггерами выполните следующие 2 запроса:
Чтобы скопировать только структуру и данные, используйте это:
Я спрашивал это раньше:
Скопируйте таблицу MySQL, включая индексы
источник
select *
будет работать в огромных таблицах.AUTO_INCREMENT
значение.Помимо решения выше, вы можете использовать
AS
его в одну строку.источник
create table {new_table} select * from {old_table};
не ответ и не предоставляет никакой новой информации.MySQL способ:
источник
Перейдите в phpMyAdmin и выберите исходную таблицу, затем выберите « Операции». » в области « Копировать таблицу в (database.table) ». Выберите базу данных, в которую вы хотите скопировать, и добавьте имя для новой таблицы.
источник
Я обнаружил ту же ситуацию, и подход, который я использовал, заключался в следующем:
SHOW CREATE TABLE <table name to clone>
: это даст вамCreate Table
синтаксис для таблицы, которую вы хотите клонироватьCREATE TABLE
запрос, изменив имя таблицы, чтобы клонировать таблицу.Это создаст точную копию таблицы, которую вы хотите клонировать вместе с индексами. Единственное, что вам нужно, это переименовать индексы (если требуется).
источник
Лучший способ дублировать таблицу - использовать только
DDL
оператор. Таким образом, независимо от количества записей в таблице, вы можете выполнить дублирование мгновенно.Моя цель:
Это позволяет избежать
INSERT AS SELECT
утверждения о том, что в случае таблицы с большим количеством записей может потребоваться время для выполнения.Я предлагаю также создать процедуру PLSQL как следующий пример:
Хорошего дня! Alex
источник
Развивая этот ответ, можно использовать хранимую процедуру:
Что приведет к дублированию таблицы с именем
tableName_20181022235959
If, когдаРезультаты:
Реализация
источник
После того, как я попробовал решение выше, я придумываю свой собственный путь.
Мое решение немного ручное и нуждается в СУБД.
Сначала экспортируйте данные.
Во-вторых, откройте данные экспорта.
В-третьих, замените старое имя таблицы новым именем таблицы.
В-четвертых, измените все имя триггера в данных (я использую MySQL и выдает ошибку, когда я не меняю имя триггера).
В-пятых, импортируйте отредактированные данные SQL в базу данных.
источник
Попробуй это :
Я выбрал 4 столбца из старой таблицы и создал новую таблицу.
источник
ДЛЯ MySQL
ДЛЯ MSSQL Использовать
MyDatabase
:Этот SQL используется для копирования таблиц, здесь будет скопировано содержимое oldCustomersTable
newCustomersTable
.Убедитесь, что в базе данных
newCustomersTable
не существует.источник