Дублирование записи в таблице - 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.

  1. INSERT INTO tab1(fld1, fld2, fld3) - это оператор INSERT, который добавляет новую запись в таблицу tab1. Он содержит список полей, которые должны быть заполнены - fld1, fld2, fld3.
  2. SELECT fld1, fld2, fld3 - это оператор SELECT, который выбирает значения полей fld1, fld2, fld3 из таблицы tab1.
  3. FROM tab1 - это указание, что данные для копирования берутся из таблицы tab1.
  4. WHERE id = 2 - это условие, которое ограничивает выборку только теми записями, у которых значение поля id равно 2. Таким образом, данный код добавляет в таблицу tab1 новую запись, которая полностью дублирует запись с идентификатором 2, включая значения полей fld1, fld2, fld3.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы