2013-06-22 2 views
0

Мой MYSQL запросВставка данных в Mysql с несколькими уникальными ключами

$db->query("INSERT INTO customers (first_name,last_name,address,city,state,zip,phone,dnc,user_id) 
VALUES ('$firstname','$lastname','$address','$city','$state','$zip','$phone','$dnc','$userid') ON DUPLICATE KEY UPDATE phone=phone"); 

То, что я делаю, помещая информацию о клиенте в базу данных. Я хотел убедиться, что каждый клиент был вставлен один раз в базу данных. Этот запрос работает для этого, используя номера телефонов в качестве уникального ключа. Теперь проблема заключается в том, что я хочу иметь дубликаты клиентов в базе данных, но не дублирует клиентов на пользователя.

В моем приложении у нескольких пользователей есть клиенты, которых они добавили, но они не могут видеть, как добавили другие пользователи. Я хочу, чтобы запрос НЕ вставлялся, только если user_id и телефон уже находятся в базе данных. Я попытался добавить

phone=phone AND user_id=$userid 

до конца запроса, но не смог заставить его работать правильно. Любая помощь будет оценена, спасибо.

+0

Почему вы делаете don't сочетание телефона и user_id уникальный индекс? – hynner

+0

Я думал об этом раньше, вы имеете в виду строку с телефоном и идентификатором пользователя вместе, как и телефон 5551231234, а идентификатор пользователя - 99, это будет 555123123499? – NateWiley

+0

nope, вы можете сделать один указатель над несколькими столбцами – hynner

ответ

0

Используйте этот запрос, чтобы добавить уникальный индекс выше обоих полей:

ALTER TABLE customers ADD UNIQUE `unique_customer` (user_id , phone) 
+0

OK im получение ошибок, как бы я изменил свой запрос на это? – NateWiley

+0

Можете ли вы быть более конкретным? Какие ошибки? – hynner

+0

Я изменил конец запроса на ON DUPLICATE KEY UPDATE unique_lead = unique_lead и Im получает Неизвестный столбец 'unique_lead' в 'списке полей' – NateWiley