У меня есть таблица со столбцом 'id' и другими различными столбцами. Каждая строка данных будет иметь уникальный идентификатор. Этот идентификатор упоминается в другой таблице, в которой также есть строки с уникальным идентификатором. Каждый из них упоминается в еще одной таблице.
Мы будем называть таблицы «items», «item_options» и «sub_options». Я хочу скопировать одну строку в «items», а также скопировать все, что связано с ее идентификатором в «item_options», и все, что в «sub_options», что связано с идентификаторами в «item_options».
Например:
Скажем, в столбцах "items" есть "id" и "title".
В 'item_options' столбцами являются 'id', 'itemID' и 'option'.
В 'sub_options' столбцами являются 'id', 'item_optionsID' и 'subOption'.
Я могу получить это далеко:
insert into dbo.items (title)
select title
from dbo.items where id = '123'
Отсюда я возвращаю новые идентификаторы для вновь скопированных строк в «itmes», затем использую серверный язык для циклического прохождения и копирования «item_options», а затем перебираю их для копирования «sub_options», но я Я очень часто бьюсь по БД, а производительность бьет.
Я хочу сделать все это в SQL, но я не могу понять это.
Для примера данных я попробую это:
dbo.items
id: '123'
title: 'New Car'
dbo.item_options
id: '456'
itemID: '123'
опция: 'Custom Wheels'
id: '457'
itemID: '123'
опция: 'Custom Paint'
dbo.sub_options
id: '789'
item_optionsID: '456'
Подопция: 'Chrome'
id: '790'
item_optionsID: '456'
Подопция: «20 дюймов»
id: '791'
item_optionsID: '457'
Подопция: «Красный»
По сути, я хочу скопировать все это, при этом удостоверение личности совпадает со всеми недавно сгенерированными идентификаторами при создании копии.