2013-06-11 2 views
1

У меня очень простая таблица с 3 столбцами tag_id, label, timestamp, и мне нужен как можно более легкий вес, чтобы вставлять запрос только тогда, когда есть новое значение для столбца label.Избегайте вставки повторяющихся значений столбца

Как бы написать sql-запрос, чтобы сделать это? Я могу увидеть некоторые примеры уже на сайте, но все они смешаны в более сложных запросах (некоторые из которых связаны с подзапросами), которые я не могу понять.

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

+0

является 'label' уникальное поле? –

+0

ярлык - это всего лишь символ на данный момент - должен ли я установить его как уникальный где-то тогда? :) –

+1

Вы имеете в виду строку? просто google для 'mysql unique' –

ответ

3

Вы можете использовать

ALTER TABLE `tableName` ADD UNIQUE KEY (label); 

Это будет обеспечивать уникальное значение для этого столбца в схеме. При попытке вставить дублирующее значение вы получите сообщение об ошибке. Если вы хотите просто проигнорировать ошибку, вы можете использовать INSERT IGNORE INTO.

+0

Ах спасибо за подсказку - неприятные злые ошибки, которые мне не нравятся> 8) –

-1

вы также можете использовать:

INSERT INTO table(`label`) VALUES ("new value") 
ON DUPLICATE KEY UPDATE `label` = "new value"; 
+1

Это предложение не имеет никакого смысла. –

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