MySQL

MySQL: Как скопировать данные с одной таблицы в другую

Копирование полностью всех данных из одной таблицы mysql в другую:

INSERT INTO `db`.`table_to`
SELECT *
FROM `db`.`table_from` ;

Если необходимо скопировать только некоторые столбцы, то применяем следующую конструкцию:

INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`)
SELECT `a1`, `a2`, `a3`, `a4`
FROM `db`.`table_from` ;

Для копирования данных из одной таблицы MySQL в другую по условию:

INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`)
SELECT `a1`, `a2`, `a3`, `a4`
FROM `db`.`table_from`
WHERE  `a2` < '2014-04-30 11:37:38';

db — имя базы.
table_to — таблица куда копируем.
table_from — таблица откуда копируем.

Насколько полезным был этот пост?

Нажмите на звезду, чтобы оценить!

Средний рейтинг 4.8 / 5. Голосов: 12

Пока оценок нет! Будьте первым, поставь свою оценку этому посту.

Мы сожалеем, что этот пост не был полезен для вас!

Давайте улучшим этот пост!

Расскажите, как мы можем улучшить этот пост?

Теги

12
Оставить комментарий

avatar
6 Цепочка комментария
6 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
9 Авторы комментариев
AndreyКонстантинДмитрийГуру ***Наталя Квітка Авторы недавних комментариев

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
новее старее большинство голосов
Уведомление о
Andrey
Гость
Andrey

А вообще супер !!!! ПОМОГ !!!

Andrey
Гость
Andrey

Спасибо Но много пришлось ручками набирать, Все поля перечислял —-а нет такой автомат. функции в самом phpMyAdmin ?

Дмитрий
Гость
Дмитрий

Александр.
У меня задача, как-то пометить эту запись. Например добавить в поле a5_2 число 5. В select его нет? Куда вставить эти 5.
INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`, `a5_2`)
SELECT `a1`, `a2`, `a3`, `a4`
FROM `db`.`table_from` ;

Константин
Гость
Константин

То есть так:

INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`, `a5_2`)
SELECT `a1`, `a2`, `a3`, `a4`, REPLACE(`a5`, `a5`, ‘5’)
FROM `db`.`table_from` ;

Константин
Гость
Константин

Вроде так можно:

INSERT INTO `db`.`table_to` (`a1_2`, `a2_2`, `a3_2`, `a4_2`, `a5_2`)
SELECT `a1`, `a2`, `a3`, `a4`, REPLACE(`a4`, `a4`, ‘5’)
FROM `db`.`table_from` ;

Гуру ***
Гость
Гуру ***

Недовольные, какого хрена вы здесь делаете? Если вы не знаете, куда это вставлять, то начинайте читать учебник по MySQL с главы 1. Тут вам пока что рано читать

Наталя Квітка
Гость
Наталя Квітка

Спасибо, Александр, за четкий и понятный код

Vasya
Гость
Vasya

Что бы тебе жилось долго, и люди рождаясь понимамали, куда вставлять это всё, что ты тут вымочил!

Traver
Гость
Traver

ТЫ и правда ВАСЯ!

Back to top button
Close
Close