2015-09-16 3 views
0

У меня есть запрос, который запускается каждый раз при входе пользователя в систему. Поскольку этот запрос касается информации, у пользователя может быть сторонний обновленный недавно Я думал, что было бы неплохо превратить комбо user_id + information в таблицу уникальной. Таким образом, каждый раз, когда пользователь пытался сохранить новую информацию, он сохранял только ту информацию, которую у меня уже не было. Таким образом, первый запрос являетсяСохранение новых записей, отфильтрованных «уникальным» в mysql

INSERT INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets") 

И как пользователь Входов на второй раз и будучи

INSERT INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets"),("1","chocolate") 

Было бы только сохранить ("1","chocolate"), потому что (идентификатор, информация) будучи уникальной пары все остальные не будет быть вставлен. Я пришел к осознанию того, что все они терпят неудачу, если только один терпит неудачу. Поэтому мой вопрос: есть ли способ переопределить эту операцию? Или мне нужно сначала запросить db для фильтрации информации, которую у меня уже есть? tyvm ...

+0

Использование Thisi NSERT ИГНОРИРУЙТЕ в таблице ЗНАЧЕНИЯ (» 1" , "пирог"), ("1", "пирог"), ("1", "Простыня"), ("1", "шоколад"); –

+0

@BerndBuffen Сладкий помощник! Я знал, что это не такой уж глупый вопрос. Ответьте, не комментируйте, поэтому я могу его одобрить :) – Fane

+0

Когда вы используете ключевое слово IGNORE, поэтому все ошибки в исполнении игнорируются. Пример: если при выполнении инструкции INSERT у вас есть двойная или PRIMARY-ошибка, она игнорируется и выполнение не прерывается. –

ответ

0

Когда вы используете ключевое слово IGNORE, поэтому все ошибки в исполнении игнорируются. Пример: если у вас есть дубликат или PRIMARY ошибка ключа при выполнении INSERT заявления, так что это будет проигнорировано и выполнение не прерывается

Используй это:

I NSERT IGNORE INTO table VALUES ("1","cake"),("1","pie"),("1","bedsheets"),("1","chocolate"); 
Смежные вопросы