2013-12-25 6 views
1

Мне нужно дублировать некоторые записи в таблице, меняя одно поле.sql duplicate records with изменения

Сначала я сделал это в php, но потребовалось слишком много времени. Таким образом, очевидное решение использует sql-запрос.

Скажем, у нас есть таблица CP с первичным ключом id внешнего ключа r_id и data1 и data2. Мне нужно скопировать все записи с r_id = 666 для примера, но значение изменения r_id к 777.

Я нашел http://www.dbforums.com/microsoft-sql-server/993807-how-create-duplicate-rows.html но значение не изменилось там. Таким образом, может быть INSERT INTO, SELECT и UPDATE должны использоваться как-то.

Не удается найти решение. Пожалуйста помоги.

+0

Что RDBMS вы используете (SQL Server, MySQL, Oracle ...)? SQL - это всего лишь структурированный язык запросов. Как определяется столбец «id»? Это 'auto_increment' (если это MySQL) /' identity' (если это SQL Server)? – peterm

+0

Это сервер MySQL –

ответ

4

Вы можете использовать INSERT INTO

INSERT INTO cp (r_id, data1, data2) 
SELECT 777, data1, data2 
FROM cp 
WHERE cp.r_id = 666; 

SQLFiddle Demo

предполагается, что вы автоматически сгенерирован идентификатор и MYSQL

+0

С Новым годом! :) –