Я новичок в MySQL. Я хотел бы скопировать содержимое одной таблицы в другую в той же базе данных. В принципе, я хотел бы вставить в таблицу из другой таблицы. Есть простой способ сделать это?
118
INSERT INTO TARGET_TABLE SELECT * FROM SOURCE_TABLE;
РЕДАКТИРОВАТЬ: или, если таблицы имеют разные структуры, вы также можете:
INSERT INTO TARGET_TABLE (`col1`,`col2`) SELECT `col1`,`col2` FROM SOURCE_TABLE;
РЕДАКТИРОВАТЬ: чтобы ограничить это ..
INSERT INTO TARGET_TABLE (`col1_`,`col2_`) SELECT `col1`,`col2` FROM SOURCE_TABLE WHERE `foo`=1
Если таблица не существует, вы можете создать ее с такой же схемой, например:
Затем, чтобы скопировать данные:
источник
SELECT * INTO newTable FROM sourceTable
в w3school , почему он не работаетMySQL
SELECT ... INTO
предназначена для экспорта таблицы в выходной файл или в переменные; не прямо в стол. См. Dev.mysql.com/doc/refman/5.7/en/select-into.htmlЕсли table1 большой, и вы не хотите блокировать его на время процесса копирования, вы можете вместо этого выполнить dump-and-load:
источник
show processlist
я не увидел запущенных запросов. Не уверен, в чем проблема.Это сработало для меня,
CREATE TABLE newtable LIKE oldtable;
Копирует новую таблицу со старой таблицей
INSERT newtable SELECT * FROM oldtable
;Копирует все данные строки в новую таблицу.
Спасибо
источник
Если вы хотите создать и скопировать контент за один раз, просто используйте SELECT:
источник
Это сработало для меня. Вы можете сделать оператор SELECT более сложным с помощью предложений WHERE и LIMIT.
Сначала продублируйте большую таблицу (без данных), выполните следующий запрос, а затем обрежьте большую таблицу.
Очень просто. :-)
источник
Он просто создает новую таблицу с той же структурой, что и исходная таблица, а также копирует все строки из source_table в target_table.
Если вам нужно скопировать несколько строк в target_table, примените условие внутри предложения where
источник
Попробуй это. Хорошо работает в моем Oracle 10g,
источник