Как скопировать запись? структура: id | feild1 | feild2 | feild3 | feild..NN нужно создать в той же(!) таблице копию записи. такой вариант не катит (ругается на ключ) [sql]INSERT INTO pages SELECT * FROM pages WHERE pageID = '.$pageID[/sql] Как бы это сделать, не перебирая все поля руками?
два запроса, сначала SELECT и сохранить результаты куда-нить. Потом INSERT эти результаты. зы: обрати внимание на Primary Key, такие поля должны быть уникальны.
новая запись всё равно не будет копией старой. Так как Primary Key - уникальное поле (как уже выше сказали) Быстрее всего будет открыть в phpmyadmin, выделить строку, вставить в запрос и добавить запятые. секунд 30 делов-то
дада, так и надо. да, отличный вариант. КТо-то нажмёт кнопку в админке, мне уйдёт письмо на мыло "юзер такой-то, живущий в таком-то городе нажал кнопку А, исходные данные Б, по этому бросай нахер все дела и лезь в phpmyadmin". Так что ли?
1. смотрел, он на ключ ругается. а без него никак (в скопированной записи, разумеется, он должен быть на 1 больше). 2. Нет, не принципиально - хоть в 10, лишь бы поля не перечислять в коде.
Попробуй так: [sql]INSERT INTO pages SELECT * FROM pages WHERE pageID = '.$pageID.' ON DUPLICATE KEY UPDATE pageID=LAST_INSERT_ID(pageID)+1[/sql] при условии, что pageID - это автоинкриментное значение.
Столбец 'pageID' в cписке полей неоднозначен Мой рабочий вариант, но список полей, кроме pageID, придется указать [sql]INSERT INTO pages(title) SELECT title FROM pages WHERE pageID = 1[/sql]
Zilog Во-первых, не нужно иронии, подробности твоей задачи мне неизвестны, решаю ту, что описана: Во вторых, подобная ошибка говорит о том, что надо указывать таблицы, например INSERT INTO pages AS p1 SELECT * FROM pages AS p2 WHERE p1.pageID = '.$pageID.' ON DUPLICATE KEY UPDATE p2.pageID=LAST_INSERT_ID(p1.pageID)+1[/quote]
вот тут чел попытался перевести, вроде понятно http://kurilka.co.ua/archives/insert-on ... ey-update/ оригинал я так понял вот тут http://dev.mysql.com/doc/refman/5.0/en/ ... icate.html Одно ясно и будем откровенны, другого варианта как через жопу пока нету =)
чтобы не перебирать руками, используй функции php для получения списка полей и далее составление запроса тоже на php.