SQL - Копирование строки из одной таблицы в другую и одновременное обновление столбца в таблице назначения. - PullRequest
2 голосов
/ 22 мая 2011

У меня есть 2 таблицы, как показано ниже.Они идентичны, за исключением имени таблицы.

tbl_item_color_exp
>>item_color_ID
>>color_ID
>>item_ID

tbl_item_color_live
>>item_color_ID
>>color_ID
>>item_ID

Я хотел скопировать несколько строк из таблицы tbl_item_color_live в таблицу tbl_item_color_exp.Я могу выполнить копирование точного столбца и строки следующим SQL-кодом ниже:

INSERT INTO tbl_item_color_exp 
SELECT * FROM tbl_item_color_live WHERE item_ID = $oldID

Но я не хочу создавать реплицированный первичный ключ item_color_ID и хочу обновить все строки, скопированные из столбца item_ID, вновая переменная, $newID.Общая идея состоит в том, чтобы скопировать все строки на основе $oldID и обновить таблицу назначения с помощью &newID, но с поддержкой столбца color_ID с автоматически увеличенным первичным ключом item_color_ID.

Я могу выполнить это с помощью нескольких запросов SQLно мне было интересно, возможно ли для меня сделать все более эффективно только одной строкой SQL?Надеюсь, мой вопрос понятен всем, спасибо.

Ответы [ 2 ]

4 голосов
/ 22 мая 2011

Я не уверен на 100%, что понимаю, что вы хотите, но похоже, что вы на самом деле хотите копировать color_id s, вы хотите установить их все с новым item_id, и вы хотите, чтобы автонумерация происходят.

Звучит как:

INSERT INTO tbl_item_color_exp (color_id,item_id)
SELECT color_id,$newID FROM tbl_item_color_live WHERE item_ID = $oldID
2 голосов
/ 22 мая 2011
INSERT INTO tbl_item_color_live (color_ID, item_ID)
SELECT color_ID, $newID FROM tbl_item_color_exp WHERE item_ID = $oldID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...