ФорумРазработкаБазы данных → копирование элементов в базе.

копирование элементов в базе.

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2009 г. 8:04

    можно ли как то 1 запросом скопировать информацию из 1 строки в другую? При этом создав эту другую строку.

    Для чего.
    Есть элемент, у него какие то свойства. информация о них храница в базе.
    я хочу все эти же свойства присвоить другому объекту.

    мне приходится доставать их из базы и потом записывать обратно.
    Это очень много.
    Как это лучше организовать?
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:05, спустя 53 секунды

    INSERT … SELECT
    в ман по INSERT сходи
    все умрут, а я изумруд
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2009 г. 8:35, спустя 29 минут 36 секунд

    Чето не помог мне мануал =(


    вот таблица
    id | id_odject | id_property
    1 | 1 | 1
    2 | 1 | 2
    3 | 1 | 3


    после запроса должно получиться так

    1 | 1 | 1
    2 | 1 | 2
    3 | 1 | 3
    4 | 2 | 1
    5 | 2 | 2
    6 | 2 | 3


    из мануала

    INSERT INTO
               tbl_temp2 (id_property)
        SELECT
               tbl_temp1.id
          FROM
               tbl_temp1
    WHERE
    tbl_temp1.id<10

    но запрос вставляет все из таблицы tbl_temp1. как мне добавить данные из вне.
    В моем случае нужно в данный запрос добавить id_odject.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:35, спустя 23 часа 59 минут 58 секунд

    Professor, какой ты ман смотрел? дай ссылку
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:36, спустя 1 минуту 34 секунды

    INSERT INTO `table1` (`id1`, `col1`) VALUES (SELECT `id2`, `col2` FROM `table2`)
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2009 г. 8:38, спустя 1 минуту 41 секунду

    тоесть я могу так сделать?
    INSERT INTO `table1` (`id1`, `col1`,`col2`) VALUES (SELECT `id2`, `col2` FROM `table2`,'10')
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:40, спустя 1 минуту 30 секунд


    тоесть я могу так сделать?
    INSERT INTO `table1` (`id1`, `col1`,`col2`) VALUES (SELECT `id2`, `col2` FROM `table2`,'10')

    поставь себе MySQL Query Browser и пробуй, пробуй…
    adw/0
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:45, спустя 5 минут 23 секунды

    ,'10'
    что это?
    Спустя 105 сек.
    INSERT INTO `table1` (`field1`, `field2`) SELECT `field1`, `field2` FROM `table2`
    все умрут, а я изумруд
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2009 г. 8:46, спустя 1 минуту 9 секунд

    это то что должно вносится новое . Этого нет в таблице, и значение этого столбца должно быть равно 10 во всех строках.
    Спустя 48 сек.
    Вот с этим и трабла
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:46, спустя 7 секунд

    А надо добавить 10, делай так:
    INSERT INTO `table1` (`field1`, `field2`, `field3`) SELECT `field1`, `field2`, 10 FROM `table2`
    adw/0
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:47, спустя 31 секунду


    это то что должно вносится новое . Этого нет в таблице, и значение этого столбца должно быть равно 10  во всех строках.
    Спустя 48 сек.
    Вот с этим и трабла
    бля
    вместо поля укажи '10'

    INSERT INTO `table1` (`field1`, `field2`) SELECT `field1`, '10' FROM `table2`
    все умрут, а я изумруд
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 24 августа 2009 г. 8:49, спустя 1 минуту 41 секунду

    О! Спасибо!
    Спустя 45 сек.
    Просто как то не логично в место поля данные указывать =)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:50, спустя 1 минуту 13 секунд

    Просто как то не логично в место поля данные указывать =)
    Все логично
    adw/0
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 24 августа 2009 г. 8:54, спустя 4 минуты 24 секунды

    сказали ж ман читать
    Спустя 19 сек.
    в данном случае по селекту
    все умрут, а я изумруд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!