【问题标题】:Avoid inserting duplicate column values避免插入重复的列值
【发布时间】:2013-06-11 10:49:33
【问题描述】:

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

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

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

【问题讨论】:

  • label 是唯一字段吗?
  • label 目前只是一个字符 - 我应该在某处将其设置为唯一吗? :)
  • 你的意思是一个字符串?只是谷歌mysql unique
  • 哦,哇,所以我只是为列设置了一个唯一的约束?哇好的..

标签: mysql


【解决方案1】:

你可以使用

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

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

【讨论】:

    【解决方案2】:

    你也可以使用:

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

    【讨论】:

    • 这个建议没有任何意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2021-03-06
    相关资源
    最近更新 更多