Копирование записей в таблицах MySQL.

Примеры SQL запросов.


Рассмотрим несколько вариантов SQL запросов к базе данных MySql позволяющих копировать данные из одной или нескольких таблиц в таблицу назначения.

Частичное копирование данных в таблицах.

Запрос на копирование данных одной записи из таблицы first в таблицу second полей с одинаковой структурой:

SQL
INSERT INTO `table_first` (`entry_1`, `entry_2`, `entry_3`) 
SELECT 
	`entry_1`, 
	`entry_2`, 
	`entry_3` 
FROM 
	`table_second` 
WHERE 
	`id` = 1

Тоже, но нескольких записей:

SQL
INSERT INTO `table_first` (`entry_1`, `entry_2`, `entry_3`) 
SELECT 
	`entry_1`, 
	`entry_2`, 
	`entry_3` 
FROM 
	`table_second` 
WHERE 
	`id` IN(1,2,3)

Полное копирование данных таблицах.

Если таблицы идентичны то следующий запрос выполнит полное копирование данных между таблицами:

SQL
//Полное копирование данных в таблицах
INSERT INTO `table_second` SELECT * FROM `table_first`

//Когда нужны только определённые поля
INSERT INTO `table_second` (`name`, `alt`, `page`) 
SELECT 
	`login`, 
	`comment`, 
	`url` 
FROM 
	`table_first`

Копирование данных таблицах с разной структурой.

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

SQL
INSERT INTO `table_second` (`name`, `comment`, `url`, `tems`, `sort`)
SELECT
	`filename` AS `name`,
	'' AS `comment`,
	`url`,	
	'prod' AS `tems`,
	1 AS `sort`
FROM
	`table_first`

Копирование с подзапросом в третью таблицу.

SQL
INSERT INTO `table_second` (`name`, `comment`, `url`, `tems`, `sort`)
SELECT
	(SELECT `name` FROM `table_third` WHERE `item_id` = `table_first`.`id`) AS `name`,
	'' AS `comment`,
	`url`,	
	'razdel' AS `tems`,
	1 AS `sort`
FROM
	`table_first`

Копирование данных из нескольких таблиц.

SQL
INSERT INTO `table_second` (`user`, `email`, `telephone`)  
SELECT * FROM (
	(SELECT `user`, `email`, `telephone` FROM `table_first`) 
	UNION 
	( SELECT `user`, `email`, `telephone` FROM `table_third`)
)

Дата публикации: 

ТОП 10 случайных публикаций



Сайт разработан студией © WEB-VidST   


Яндекс.Метрика