Можно ли продублировать запись изменив некоторые значения?

akxxiv

Новичок
Можно ли продублировать запись изменив некоторые значения?

Ситуация такая. Есть таблица, в ней около 30 столбцов. Я хочу продублировть некоторые из записей, но крайне лень составлять запрос, с перечнем того чего надо вставить. Было бы легко сделать так

INSERT INTO `table` SELECT * FROM `table` WHERE `id`=23

Но!!! Есть id с примари ключем и u_name - с уникальным индексом. И естественно на такой запрос выдается ошибка, мол ключи дублируются.

Вопрос можно ли сделав такой запрос, изменив в процессе id на null (чтобы автоинкремент сработал), а name на другое значение? Если можно то как?
 

voituk

прозревший
[sql]insert into mytable (name, value, other)
select name, value, 'my new value' from mytable where id = 999;[/sql]
 

antson

Новичок
Партнер клуба
если лень писать запросы , то может
тогда написать функцию которая будет
Вам их собирать автоматом.
Наметки
function _mysql_copy($table,$id,$skiped,$idkey='id'){
// взять список полей от таблицы через SHOW FIELDS FROM $table

// взять значения всех полей через SELECT * from $table where $idkey = ' $id'

// собирать в цикле по всем полям части для insert поля,значения , где поля нет в $skiped

// выполнить собраный запрос INSERT INTO $table($поля) VALUE($значения)

}
 

voituk

прозревший
antson
Дайте 2!
А у вас MySQL не сдохнет, как наша корова (с) Народная интерпретация
 

MiksIr

miksir@home:~$
CREATE TEMPORARY TABLE tmpt SELECT * FROM table WHERE id=23;
UPDATE tmpt SET id=0, u_name='...';
INSERT INTO table SELECT * FROM tmpt;
 

voituk

прозревший
Извращенье не знает границ.
И это только из-за того, что кому-то лень перечислить поля в запросе!
А создавать эту туеву хучу полей не лень было?
 

MiksIr

miksir@home:~$
Меня очень радует, сколько на этом форуме желающих сказать что-то "по существу" =)
 
Сверху