MYSQL Insert .. Select - несколько строк и таблиц с внешними ключами? - PullRequest
0 голосов
/ 02 октября 2009

Я использую 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 (с сохранением опции для отношений элементов).

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 06 октября 2009

Извините за дерьмовый вопрос! Я просто использовал цикл вместо сложных запросов. Вероятно, не лучшее решение, но, безусловно, самое прямое:)

Спасибо, что читаете, ребята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...