避免插入重复的列值

时间:2013-06-11 10:49:34

标签: mysql

我有一个非常简单的表,其中包含3列tag_id, label, timestamp,我需要尽可能轻量级的查询,只有当列label有新值时才能插入。

如何编写SQL查询来执行此操作?我可以在网站上看到一些示例,但它们都混合在更复杂的查询中(有些涉及子查询)我无法理解。

似乎有不同的方法,我需要找出最轻量级的方法,以便我可以在一个循环中重复它,一次插入多个标签,而不会给服务器带来太大的压力。

2 个答案:

答案 0 :(得分:3)

您可以使用

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

这将为架构中的该列强制实施唯一值。尝试插入重复值时,您将收到错误消息。如果您只想忽略错误,可以使用INSERT IGNORE INTO

答案 1 :(得分:-1)

你也可以使用:

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