Дублирование записи в таблице - MySQL
Формулировка задачи:
Доброго всем дня!
вот пишу запрос на дублирование записи:
и вроде с виду все правильно но светит ошибку
и в интернетах прочитал похожее но не пойму где у меня ошибка.
Подскажите пожалуйста.
INSERT INTO `table` SET `one`=(SELECT `one` FROM `table` WHERE `id` = 2), `two`=(SELECT `two` FROM `table` WHERE `id` = 2), `three`=(SELECT `three` FROM `table` WHERE `id` = 2)
#1093 - You can't specify target table 'TABLE' for update in FROM clause
Решение задачи: «Дублирование записи в таблице»
textual
Листинг программы
INSERT INTO tab1(fld1, fld2, fld3) SELECT fld1, fld2, fld3 FROM tab1 WHERE id = 2
Объяснение кода листинга программы
В данном коде происходит дублирование записи в таблице tab1.
INSERT INTO tab1(fld1, fld2, fld3)- это оператор INSERT, который добавляет новую запись в таблицуtab1. Он содержит список полей, которые должны быть заполнены -fld1,fld2,fld3.SELECT fld1, fld2, fld3- это оператор SELECT, который выбирает значения полейfld1,fld2,fld3из таблицыtab1.FROM tab1- это указание, что данные для копирования берутся из таблицыtab1.WHERE id = 2- это условие, которое ограничивает выборку только теми записями, у которых значение поляidравно 2. Таким образом, данный код добавляет в таблицуtab1новую запись, которая полностью дублирует запись с идентификатором 2, включая значения полейfld1,fld2,fld3.