Как заменить id - MySQL

Узнай цену своей работы

Формулировка задачи:

Таблица sclad имеет поля id_tov, id_postav и year Таблица tov имеет поля id, id_postav, year, name, price и т.д. В 2016 году те же самые товары в таблице tov и я сделал insert из select всунул только новый год, price они пальцами набьют. Проблема Таблица sclad тоже заполнялась весь 2015 год, нужно перевести на 2016, но тут обычный insert из select не пройдет, т.к. у товара новый id, т.е. тут нужно делать поиск по равенству name, id_postav и year 2016 Не могу ничего придумать( Коллеги предлагают вариант с массивом в PHP и сохранять под номер id 2014 года id для 2015, делать инсерт и крутить цикл и делать апдейт в таблице sclad. Не нравится мне вариант с массивом Какие есть варианты? Заранее спасибо!
Можно удалять, нашли решение

Решение задачи: «Как заменить id»

textual
Листинг программы
INSERT INTO sclad (id_tov, id_postav, year) SELECT id_tov, id_postav, 2016
FROM sclad_copy
WHERE year = 2015

Объяснение кода листинга программы

В данном коде происходит замена значения года в таблице sclad на 2016.

  1. Создается таблица sclad_copy, которая является копией таблицы sclad.
  2. В таблице sclad_copy выполняется запрос SELECT, который выбирает значения id_tov, id_postav и года.
  3. В таблице sclad выполняется запрос INSERT, который заменяет значения года на 2016 для строк, где год равен 2015. Таким образом, код заменяет значения года на 2016 для всех строк в таблице sclad, где год равен 2015.

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


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

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

5   голосов , оценка 4.4 из 5