За последние 24 часа нас посетил 18701 программист и 1603 робота. Сейчас ищут 913 программистов ...

Копирование

Тема в разделе "MySQL", создана пользователем Earring, 28 ноя 2013.

  1. Earring

    Earring Новичок

    С нами с:
    28 ноя 2013
    Сообщения:
    2
    Симпатии:
    0
    Добрый день.
    Исходные данные. В базе данных три таблицы, две из которых связаны с ключевым полем первой через ID.
    Есть например модель со стат параметрами хранимыми в первой таблице и набор переменных параметров, хранимых в двух привязанных таблицах.
    Подскажите как сделать копию модели, чтобы все параметры(*за исключением ключевого ID) остались неизменными, и появились в двух связных таблицах с привязкой к новому ID
     
  2. Earring

    Earring Новичок

    С нами с:
    28 ноя 2013
    Сообщения:
    2
    Симпатии:
    0
    Как пример

    INSERT INTO model (model_ryad,fabric,cat_id,note,hid)
    SELECT model_ryad,fabric,cat_id,note,hid
    FROM model
    WHERE id = 21;

    Я скопировал запись с ID = 21
    Появлась точная(части описанных полей) копия данной записи, но с новым ИД (например = 100)
    Все это в первой таблице.
    Но по этому ID цепляются ещё таблицы...
    Например таблица два
    Model_ID(связка с первой таблицей), Model_parametr, Model_Value
    Есть ещё таблица три, таким же образом через ID связана с первой таблицей.
    Так вот в них так же есть по несколько полей с ID = 21 (к примеру)
    Необходимо чтобы они так же скопировались и в своих ID имели значение = 100(новому ID из первой таблицы)
     
  3. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Не понятно, зачем делать копию модели в той же таблице. Или надо её перенести в другую? Тогда в новой надо создать поле со старым ID и после переноса сделать update model_id в связанных таблицах как update id_model = new_id from ...ну как там таблица называется. Если всё же копию надо делать в той же таблице ситуация значительно упрощается. Сам же говоришь есть связь model.id = ..model_id. Вот и обнови там где model.id > max(model.id) до добавления копии.
    Вообще-то из вопроса не понятно что именно вызывает затруднения.