我有一个非常简单的表,其中包含3列tag_id, label, timestamp
,我需要尽可能轻量级的查询,只有当列label
有新值时才能插入。
如何编写SQL查询来执行此操作?我可以在网站上看到一些示例,但它们都混合在更复杂的查询中(有些涉及子查询)我无法理解。
似乎有不同的方法,我需要找出最轻量级的方法,以便我可以在一个循环中重复它,一次插入多个标签,而不会给服务器带来太大的压力。
答案 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";