Я использую INSERT .. SELECT для «дублирования» строк таблицы (с другим внешним ключом).
Это работает нормально, но вставляет несколько строк, и теперь мне нужно сделать еще одну INSERT, чтобы вставить несколько строк, которые связаны с каждой отдельной строкой в предыдущем SELECT ... это вообще имеет смысл? Ха-ха.
По сути, между таблицей 1 и таблицей 2 существует отношение один ко многим. Между таблицей 1 и таблицей 3 существует отношение один к одному. Я «присваиваю» строки из таблицы table1 (и их соответствующие связанные строки таблицы table2) новой строке таблицы table3 (у меня есть mysql_insert_id для этого). Я пытаюсь сделать это с минимальным количеством запросов.
Я приведу пример,
У вас есть таблица products
, таблица options
и таблица option_items
. Каждый option
имеет несколько option_items
, и к каждому product
может быть применено несколько options
.
Product1
имеет параметр Colour
, примененный к нему, а Colour
имеет элементы Blue
и Green
, Product1
также имеет параметр Size
, к которому относятся элементы Small
и Large
.
Я хочу продублировать продукт с новым идентификатором, что означает дублирование строк в таблицах options
и option_items
и повторное создание соответствующих внешних ключей.
Я создал новый продукт и у меня есть продукт.
Теперь мне нужно продублировать параметры, получить идентификатор нового option
, продублировать элементы и назначить идентификатор недавно созданного option
для items
(с сохранением опции для отношений элементов).
Любая помощь будет принята с благодарностью!