首页 > 解决方案 > MySQL UNIQUE 声明

问题描述

这两个声明有什么区别:

CREATE TABLE `t1` (`col1` INT, `col2` INT, UNIQUE(`col1`,`col2`));

或者

CREATE TABLE `t2` (`col1` INT UNIQUE, `col2` INT UNIQUE);

标签: mysql

解决方案


您使用了两种不同的方式来指定键,但您的键实际上是不同的。

  • 第一个要求 和 的组合col1col2唯一的。所以你不能有(1,2)(1,2)(1,2),但你可以有(1,2)(1,3)(2,3)

  • 第二个要求每一列都是唯一的,独立的;在这种情况下,即使是后一个例子也是无效的。

这是第一个语句,使用相同的句法方法,但重写以匹配第二个的语义:

CREATE TABLE `t1` (`col1` INT, `col2` INT, UNIQUE(`col1`), UNIQUE(`col2`));

您可以在文档中阅读有关表模式语法的更多信息。


推荐阅读