Как заменить 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.
- Создается таблица sclad_copy, которая является копией таблицы sclad.
- В таблице sclad_copy выполняется запрос SELECT, который выбирает значения id_tov, id_postav и года.
- В таблице sclad выполняется запрос INSERT, который заменяет значения года на 2016 для строк, где год равен 2015. Таким образом, код заменяет значения года на 2016 для всех строк в таблице sclad, где год равен 2015.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д