За последние 24 часа нас посетили 20163 программиста и 1695 роботов. Сейчас ищут 1829 программистов ...

insert update

Тема в разделе "MySQL", создана пользователем officeoff.ru, 6 сен 2017.

  1. officeoff.ru

    officeoff.ru Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    16
    Симпатии:
    1
    Всем добрый день! Хотел узнать, как можно реализовать insert update одним запросом.
    Если бы в БД было уникальное поле, кроме id - auto increment, было бы понятно, но задача несколько иная.

    Есть таблица
    id(AI) | id_field (int) | id_category(int) | value(text)
    Соответственно если в таблице есть запись с id_field = x и id_category = y, то нужно запись обновить, иначе добавить.

    Собственно вопрос в том, как это сделать?
     
  2. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    Поставить ограничение в лице уникального индекса на id_field, id_category и выполнять запросы вида: INSERT INTO ... ON DUBLICATE KEY UPDATE ...
     
    runcore нравится это.
  3. officeoff.ru

    officeoff.ru Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    16
    Симпатии:
    1
    Это не то!
    Значение в id_field и id_category могут повторяться по отдельности, но не вместе.
    Нужно делать апдейт только в случае, если передаваемые значения есть в 2 полях.
     
  4. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    Один уникальный индекс на 2 поля. В чем проблема?!
     
  5. officeoff.ru

    officeoff.ru Активный пользователь

    С нами с:
    31 янв 2015
    Сообщения:
    16
    Симпатии:
    1
    Большое спасибо! Если честно, не знал, что такое возможно!