2013-02-25 3 views
1

У меня есть 1 стол:Как предотвратить дублирование записи в таблице?

table1:

used_tag_id | post_id | tag_id

user_tag_id является первичным ключом.

Существует несколько записей для post_id и tag_id.

если добавить post_id = 1 и tag_id = 1 следует добавить один раз тогда, если снова я добавить post_id = 1 и tag_id = 1, то он не должен добавить снова в таблицу.
Как это сделать?
Должен ли я делать это с помощью запроса или есть ли способ сделать это при разработке таблицы?

ответ

4

создать соединение, столбец UNIQUE ограничение на столе, например

ALTER TABLE tableName ADD CONSTRAINT tb_uq UNIQUE (post_id, tag_id) 
+0

Я не могу этого сделать, потому что 1 post_id может иметь несколько tag_id –

+0

@HarjeetJadeja да, вы можете. Это позволит использовать несколько 'tag_id' для каждого' post_id'. попробуй. –

+1

, если вы выполнили инструкцию alter table, эти записи по-прежнему разрешены 'used_tag_id, post_id, tag_id',' 1,1,1', '2,1,2',' 3,1,3', '4, 1,4', но не это, если вы добавите снова '5,1,4' –

0
  1. Вы можете создать первичный ключ комбинации used_tag_id | post_id | tag_id
  2. Вы можете проверить данные по коду перед его вставкой.
+0

Я создал нормальный первичный ключ с автоматическим приращением, но как создать первичный ключ комбинации? –

+0

CREATE TABLE INFO ( t1ID INT, t2ID INT, PRIMARY KEY (t1ID, t2ID) ) – andy

+0

я codeing вещь в порядке. Но я не хочу ретранслировать по коду, который я хочу сделать с помощью самой базы данных. –

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