MySQL UNIQUE 唯一约束
时间:2019-02-04 12:52:27 来源:igfitidea点击:
本教程将通过语法和示例说明了如何在MySQL中创建,添加和删除唯一约束UNIQUE。
MySQL中的独特约束是什么?
唯一约束是唯一定义记录的单个字段或多个字段的组合。只要值的组合是唯一的,某些字段就可以包含空值。
唯一约束和主键之间有什么区别?
主键 | 唯一约束 |
---|---|
属于主键的任何字段都不能包含空值。 | 只要值的组合是唯一的,某些属于唯一性约束的字段就可以包含空值。 |
创建唯一约束-使用CREATE TABLE语句
在MySQL中使用CREATE TABLE语句创建唯一约束的语法为:
CREATE TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ... CONSTRAINT constraint_name UNIQUE (uc_col1, uc_col2, ... uc_col_n) );
参数 | 说明 |
---|---|
table_name | 要创建的表的名称。 |
column1,column2 | 要创建的列。 |
constraint_name | 唯一约束的名称。 |
uc_col1,uc_col2,... uc_col_n | 组成唯一约束的列。 |
使用CREATE TABLE语句在MySQL中创建唯一约束示例:
CREATE TABLE contacts ( contact_id INT(11) PRIMARY KEY AUTO_INCREMENT, reference_number INT(11) NOT NULL, last_name VARCHAR(30) NOT NULL, first_name VARCHAR(25), birthday DATE, CONSTRAINT contacts_unique UNIQUE (contact_id) );
在contacts表上创建了一个唯一的约束,叫做contacts_unique。它仅包含一个字段reference_number。
创建包含多个字段的唯一约束:
CREATE TABLE contacts ( contact_id INT(11) PRIMARY KEY AUTO_INCREMENT, reference_number INT(11) NOT NULL, last_name VARCHAR(30) NOT NULL, first_name VARCHAR(25), birthday DATE, CONSTRAINT contacts_unique UNIQUE (last_name, first_name) );
创建唯一的约束-使用ALTER TABLE语句
在MySQL中使用ALTER TABLE语句创建唯一约束的语法为:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);
参数 | 说明 |
---|---|
table_name | 添加唯一约束的表的名称。 |
constraint_name | 唯一约束的名称。 |
column1,column2,... column_n | 组成唯一约束的列。 |
使用ALTER TABLE语句向MySQL中的现有表添加唯一约束的示例
ALTER TABLE contacts ADD CONSTRAINT contacts_unique UNIQUE (reference_number);
在现有的contacts表上创建了一个唯一的约束,称为contacts_unique。它由reference_number字段组成。
创建包含多个字段的唯一约束:
ALTER TABLE contacts ADD CONSTRAINT contact_name_unique UNIQUE (last_name, first_name);
删除唯一约束
在MySQL中删除唯一约束的语法为:
ALTER TABLE table_name DROP INDEX constraint_name;
参数 | 说明 |
---|---|
table_name | 要删除唯一约束的表名称。 |
constraint_name | 要删除的唯一约束的名称。 |
删除唯一约束示例
ALTER TABLE contacts DROP INDEX contacts_unique;
删除唯一约束contacts_unique