Дублирование записи в таблице - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д