mysql - MySQL UNIQUE 声明
问题描述
这两个声明有什么区别:
CREATE TABLE `t1` (`col1` INT, `col2` INT, UNIQUE(`col1`,`col2`));
或者
CREATE TABLE `t2` (`col1` INT UNIQUE, `col2` INT UNIQUE);
解决方案
您使用了两种不同的方式来指定键,但您的键实际上是不同的。
第一个要求 和 的组合
col1
是col2
唯一的。所以你不能有(1,2)(1,2)(1,2)
,但你可以有(1,2)(1,3)(2,3)
。第二个要求每一列都是唯一的,独立的;在这种情况下,即使是后一个例子也是无效的。
这是第一个语句,使用相同的句法方法,但重写以匹配第二个的语义:
CREATE TABLE `t1` (`col1` INT, `col2` INT, UNIQUE(`col1`), UNIQUE(`col2`));
您可以在文档中阅读有关表模式语法的更多信息。
推荐阅读
- java - 如何以编程方式在信息亭模式下打开另一个应用程序?
- php - 从“Stripe.php”文件中获取语法错误
- r - R中整数n的k-排列
- sql - MS SQL Server - 无法在不同的表上创建相同的索引名称
- bash - Cygwin if then else 语句 - 语法错误
- amazon-web-services - 是否可以通过多个帐户管理一个 lightsail 实例?
- ios - iOS:获取 API 误用:取消未使用外围设备的连接
- c++ - C++ 原始类型初始化与对象初始化
- laravel - Laravel firstOrCreate 方法抛出重复 ID 错误
- javascript - 王牌编辑着色词