Я уверен, что это основной шаг синтаксиса SQL, который я забыл, но я не могу вспомнить, как это сделать.
Я в основном выполняю INSERT в таблице, используя результаты подзапроса из той же таблицы.Однако, когда данные вставляются, я хочу изменить значение номера бизнес-единицы.По сути, я пытаюсь скопировать настройки существующей бизнес-единицы в новую бизнес-единицу (у которой пока нет записей в этой таблице) в той же таблице.На вставке мне нужно изменить значения результирующего набора, чтобы вставить новую бизнес-единицу.
Например, предположим, у меня есть таблица с именем «dogs» со столбцами dogID, dogName, dogBreed, dogUnit.Я знаю, что могу сделать вставку следующим образом:
INSERT INTO dogs (dogID, dogName, dogBreed, dogUnit) VALUES (
'005','Test','M','1550');
И она будет работать.
Но я также мог бы выполнить вставку, используя select:
INSERT INTO dogs (dogID, dogName, dogGender, dogUnit)
SELECT dogID, dogName, dogGender, dogUnit FROM dogs WHERE dogunit = '1550'
И это будет работать, но это определенно будет вставлять дубликаты записей.На самом деле я пытаюсь (используя простой английский в последней строке):
INSERT INTO dogs (dogID, dogName, dogGender, dogUnit)
SELECT dogID, dogName, dogGender, dogUnit FROM dogs WHERE dogunit = '1550'
BUT change dogUnit to '1660' on insert
Возможно ли это, или я неправильно думаю об этом процессе?Спасибо заранее за любую помощь.Моей следующей мыслью было в основном вставить результаты запроса во временную таблицу, обновить единицу измерения # в каждой записи во временной таблице, а затем скопировать недавно обновленный набор результатов обратно в другую таблицу.