【问题标题】:MySQL two-column unique key [duplicate]MySQL两列唯一键[重复]
【发布时间】:2018-06-05 04:09:35
【问题描述】:

我知道我可以让两列成为唯一键,但这并不是我想要的。

我想要这样,例如如果col1='1', col2='2' 那么col1='1', col2='2' 不能有另一行,但完全可以执行以下操作:

+--------+--------+
|  col1  |  col2  |
+--------+--------+
|    1   |    1   |
|    1   |    2   |
|    2   |    1   |
|    2   |    2   |
+--------+--------+

虽然这是不可能的:

+--------+--------+
|  col1  |  col2  |
+--------+--------+
|    1   |    1   |
|    1   |    1   |
+--------+--------+

不能像col1='1', col2='1'col1='1', col2='2' 那样创建两个唯一键,col1 是相同的,如果两者都是唯一键,则不允许这样做。

【问题讨论】:

  • 如何将两列连接到第三列并使其成为唯一键?
  • 您可以在多个键上放置唯一约束,例如ALTER TABLE yourtable ADD UNIQUE unique_index(col1, col2);
  • 正如@GiorgosBetsos 所说,您想要一个两字段唯一键

标签: mysql database key unique-key


【解决方案1】:

你需要composite unique index

ALTER TABLE tablename ADD UNIQUE KEY `uidx` (`col1`, `col2`);

【讨论】:

    【解决方案2】:

    您只需要在col1col2 两列之间声明一个唯一索引:

    CREATE TABLE Table1
    (
      `col1` int, 
      `col2` int,
       UNIQUE `unique_index`(`col1`, `col2`)
    );
    

    如果你尝试在 col1 和 col2 中插入1, 1, 你会得到如下错误:

    Duplicate entry '1-1' for key 'unique_index'
    

    你可以自己试试here

    【讨论】:

      猜你喜欢
      • 2014-01-12
      • 2013-09-07
      • 2017-04-22
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多