【问题标题】:Mysql - Make combination of two columns uniqueMysql - 使两列的组合唯一
【发布时间】:2016-07-11 02:15:28
【问题描述】:

我有一个 mysql 数据库表,其中包含两个重要列,university_id 列和 username 列。 这里unique_id应该是整个表唯一的,但是两列可以重复很多次但是相同的组合不能重复,用户名应该是unique唯一的。这就是我的意思

 id   university_id     username
 1       10001           DrDre
 2       10002          slimshady
 3       10003          slimshady
 4       10004           DrDre
 5       10005           lilwyn
 6       10005           lilwyn <- only this line would be illegal 
 7       10005          kanyeEast
  • 如果可能的话,我也想知道如何使用 symfony2 中的学说来做到这一点

-谢谢

【问题讨论】:

    标签: mysql symfony doctrine-orm


    【解决方案1】:

    如果您没有对表进行任何约束,请使用下面的 alter 语句-

    alter table mytable 
    add unique key Uk_university_id(university_id), 
    add unique key Uk_unvid_username(university_id,username);
    

    更新:

    alter table mytable  
    add unique key Uk_unvid_username(university_id,username);
    

    【讨论】:

    • 是的,正如您在帖子中提到的那样,unique_id 对于整个表格应该是唯一的。
    • 但在您的示例中,您只需要基于组合的唯一性,因此根据我的新更新使用 alter。
    • 他显示的数据更像是一个问题
    • 现在您可以将第一个键删除为“alter table mytable drop key Uk_university_id;”
    • @ZafarMalik OP 在这里,对不起,我可能用错了问题的措辞,我已经编辑了它,示例表结构正是我所需要的。我希望这次我很清楚:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多