Копирование записей из одной таблицы в другую MySQL
Примеры SQL-запросов для копирования записей из разных таблицы.
Частичное копирование
К примеру есть две одинаковые по структуре, нужно из таблицы `table_a` скопировать запись с определенными полями в таблицу `table_b`.
Копирование нескольких записей:
Полное копирование
Если таблицы `table_a` и `table_b` полностью одинаковые по структуре, то названия полей можно опустить.
Или указать только нужные поля:
Подгонка структуры таблицы
Если таблицы разные по структуре, то можно подогнать названия и значения полей.
MySQL — как вставить данные из одной таблицы в другую?
Скопировать данные из одной таблицы в другую в базе данных MySQL полностью или частично очень просто. Далее рассмотрим несколько вариантов копирования данных.
Итак, чтобы полностью скопировать данные из одной таблицы в другую достаточно такого запроса:
INSERT INTO table_to
SELECT * FROM table_from
Вместо table_to и table_from подставляете названия своих таблиц и все получится.
Скопировать только некоторые столбцы из одной таблицы в другую можно таким запросом:
INSERT INTO table_to (`col1`, `col2`, `col2`)
SELECT `a1`, `a2`, `a3` FROM table_from
И последний вариант, копирование данных из таблицы в таблицу по какому-либо условию:
INSERT INTO table_to (`col1`, `col2`, `col2`)
SELECT `a1`, `a2`, `a3` FROM table_from WHERE `a1` > 100;
Выполнить данные запросы можно с помощью phpAdmin или любого другого mysql-менеджера. На этом все, до новых встреч!
Microsoft SQL Server
Перемещение и копирование данных вокруг таблиц
Копирование данных в таблицу, создание этой таблицы на лету
Этот код выбирает данные из таблицы:
Этот код создает новую таблицу MyNewTable и помещает в нее эти данные
Перемещение данных в таблицу (при использовании метода уникальных ключей)
Чтобы перенести данные, вы сначала вставляете их в цель, а затем удаляете все, что вы вставили из исходной таблицы. Это не нормальная операция SQL, но она может быть просветляющей
Что вы вставляли? Обычно в базах данных необходимо иметь один или несколько столбцов, которые можно использовать для однозначной идентификации строк, поэтому мы будем предполагать это и использовать его.
Этот оператор выбирает некоторые строки
Сначала мы вставляем их в нашу целевую таблицу:
Теперь, предполагая, что записи в обеих таблицах уникальны в Key1 , Key2 , мы можем использовать это для поиска и удаления данных из исходной таблицы
Это будет работать только в том Key1 , если Key1 , Key2 уникальны в обеих таблицах
Наконец, мы не хотим, чтобы работа была выполнена наполовину. Если мы завершим это в транзакции, то либо все данные будут перемещены, либо ничего не произойдет. Это гарантирует, что мы не вставляем данные, а затем не можем удалить данные из источника.
Команда SELECT INTO
Команда SELECT INTO копирует данные из одной таблицы в другую.
См. также команду INSERT, которая вставляет записи в таблицу.
Синтаксис
Можно копировать и в другую базу данных:
Условие WHERE не является обязательным, если его не указать — будут выбраны все записи.
Команду SELECT INTO можно использовать для того, чтобы создать новую пустую таблицу по образцу старой. Для этого в WHERE нужно передать условие, которое не выберет ни одной записи:
Примеры
Все примеры будут по таблицам countries1 и countries2, если не сказано иное.
Таблица countries1:
| id айди |
name имя |
|---|---|
| 1 | Беларусь |
| 2 | Россия |
| 3 | Украина |
Таблица countries2:
| id айди |
name имя |
|---|---|
| 1 | Испания |
Пример
В данном примере данные копируются из таблицы countries1 и вставляются в countries2: