1

我有一个包含 3 列的非常简单的表tag_id, label, timestamp,我需要尽可能轻量级的查询,以便仅在该列有新值时插入label

我将如何编写一个 sql 查询来做到这一点?我可以在网站上看到一些示例,但它们都混合在我无法理解的更复杂的查询(一些涉及子查询)中。

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

4

2 回答 2

3

您可以使用

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

这将强制架构中该列的唯一值。尝试插入重复值时会出现错误。如果您想简单地忽略错误,可以使用INSERT IGNORE INTO.

于 2013-06-11T11:05:21.610 回答
-1

您还可以使用:

INSERT INTO table(`label`) VALUES ("new value") 
 ON DUPLICATE KEY UPDATE `label` = "new value";
于 2013-06-11T11:12:48.360 回答