2013-08-05 3 views
2

У меня есть одна таблица со следующими столбцамиКак я могу проверить два столбца при вставке значений?

Id fksur_id name email 

Я хочу сделать как this..and это прекрасно.

fksur_id email 
2  [email protected] 
2  [email protected] 

это не нормально

fksur_id email 
2  [email protected] 
2  [email protected] 

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

+0

Почему не [ограничивать сам столбец как уникальный] (http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html)? – NDM

+0

Это зависит от того, можно ли дублировать письмо с помощью другого fksur_id. –

+0

ну тогда вы добавляете ограничение на 2 cols ... – NDM

ответ

0

Почему бы просто не сделать SELECT, посмотреть, вернет ли он какие-либо результаты, а если нет, то выполните INSERT?

+0

Вы также можете заставить столбец быть уникальным, но это зависит от того, можете ли вы дублировать электронное письмо с другим значением fksur_id. –

+0

yes Я хочу дублировать электронную почту с разными fksur_id..do у вас есть идея, как я могу это сделать? –

+0

SELECT * FROM tableName WHERE email = '$ email' Если это возвращает 0 результатов, тогда письмо не существует, вставьте новый. Если он возвращает результат, сравните fksur_id, если они совпадают, не вставляйте, если они не совпадают, выполните инструкцию insert для новой записи. –

2

здесь SQLFiddle

ALTER TABLE table_name ADD PRIMARY KEY(FKSUR_ID, EMAIL); 

Если первичный ключ уже существует, то вы хотите сделать это

ALTER TABLE table_Name ADD CONSTRAINT CONSTRAINTNAME UNIQUE (FKSUR_ID, EMAIL); 
+0

Обратите внимание, что вы можете не захотеть, чтобы эти cols были как 'PRIMARY' ключи ... – NDM

+0

Вы сделали это еще хуже, если ID присутствует, вы должны добавить [УНИКАЛЬНЫЙ ИНДЕКС] (http://dev.mysql.com /doc/refman/5.0/en/create-index.html), а не 'PRIMARY KEY', который является совершенно отдельной вещью. – NDM

+0

@NickyDeMaeyer отредактирован, добавлен уникальный ключ –

4

Создать уникальный ключ с использованием столбцов fksur_id и по электронной почте

+0

alter table tableName add constraint constraintName UNIQUE (fksur_id, email); – Mangoose

+0

Acutally здесь я хочу иметь дубликат fksur_id с разным адресом электронной почты или дублирующимся письмом с разными fksur_id. –

Смежные вопросы