Выпуск № 431 от 06.07.2009, 18:05
Администратор рассылки: Victor Pyrlik, Модератор
В рассылке: подписчиков - 594, экспертов - 165
В номере: вопросов - 1, ответов - 2
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 170072: Здравствуйте. Скажите пожалуйста какой sql запрос надо составить , что бы ,когда приходят новые данные: если в таблице уже есть поля с такими данными то ничего не происходило , если нет то происходила вставка . Таблица --------------...
Вопрос № 170072:
Здравствуйте. Скажите пожалуйста какой sql запрос надо составить , что бы ,когда приходят новые данные: если в таблице уже есть поля с такими данными то ничего не происходило , если нет то происходила вставка .
----------------------------------- если приходит id_query='5' , id_user ='ivanov' -то ничего ни делать , если id_query='5' и id_user ='petrov'
или id_query='7' и d_user ='ivanov' или id_query='10' и id_user ='gena' (такое сочетание id_query и id_user которого ещё нет в таблице) то тогда надо вставить эти данные в таблицу. Спасибо.
Можно поставить ограничение unique на эти два столбца:
Код:
ALTER TABLE TableName ADD CONSTRAINT UNIQUE (id_query, id_user);
Тогда при вставке значений, которые уже присутствуют в таблице будет сгенерировано исключение, либо возвращен
код ошибки (это зависит от того, какой фреймворк вы используете для работы с базой данных).
----- Good judgement comes from experience, and experience comes from bad judgement.
Ответ отправил: Ross, Практикант
Ответ отправлен: 02.07.2009, 01:06
Оценка ответа: 5 Комментарий к оценке: Я использовал это и это:" Набор полей id_query и id_user объявить уникальными, а чтобы при вставке не возникала ошибка, добавить еще слово IGNORE. http://dev.mysql.com/doc/refman/5.0/en/insert.html "
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 251744
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Nomad_fromx_2007, 2-й класс :
Здравствуйте, Dima1967. Можно предварительно проверять, есть ли такое значение. И если нет - то вставить. Пример на pl/sql
Приложение:
Ответ отправил: Nomad_fromx_2007, 2-й класс
Ответ отправлен: 02.07.2009, 01:56
Оценка ответа: 5 Комментарий к оценке: нормально работает
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 251745
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.