【问题标题】:2 columns unique in mysql tablemysql表中唯一的2列
【发布时间】:2025-11-27 22:55:01
【问题描述】:

是否可以在 mysql db 中创建 2 列唯一的? 例如:

ID | columnA | columnB
 1 | Dan     | 1
 2 | Dan     | 2
 3 | Zak     | 1
 4 | Dan     | 1 (WHEN TRYING TO INSERT ROW 4 - NOT ALLOWED! DUPLICATE COULMNA + COLUMNB)

【问题讨论】:

    标签: mysql sql indexing alter-table unique-index


    【解决方案1】:

    试试这个:

    ALTER TABLE tableA ADD UNIQUE INDEX idxColAB (columnA, columnB)
    

    【讨论】:

    • 这只会使这些项目的组合独一无二,我认为他想要由 col1 定义的唯一性!= col2
    • @PlantTheIdea 他实际上在示例中说COLUMNA + COLUMNB
    • 根据他给出的样本数据,这是正确的解决方案。
    【解决方案2】:

    唯一索引保证索引键不包含重复值,因此表中的每一行在某种程度上都是唯一的。创建 UNIQUE 约束和创建独立于约束的唯一索引之间没有显着差异。数据验证以相同的方式进行,查询优化器不会区分由约束创建的唯一索引或手动创建的唯一索引。但是,在列上创建 UNIQUE 约束可以明确索引的目标

    link

    【讨论】:

      最近更新 更多