MySQL 如何向现有表(包含非唯一行)添加唯一键
您可以使用alter命令向现有表添加唯一键。语法如下-
ALTER TABLE yourTableName ADD CONSTRAINT yourConstraintName UNIQUE(yourColumnName1,yourColumnName2,............N);
为了理解上述概念,让我们创建一个带有一些列的表。创建表的查询如下-
mysql> create table MovieCollectionDemo
−> (
−> MovieId int,
−> MovieDirectorName varchar(200),
−> NumberOfSongs int unsigned
−> );
Query OK, 0 rows affected (0.62 sec)
现在您可以检查表中是否有任何唯一约束。检查唯一约束的查询如下-
mysql> desc MovieCollectionDemo;
以下是输出-
+-------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| MovieId | int(11) | YES | | NULL | |
| MovieDirectorName | varchar(200) | YES | | NULL | |
| NumberOfSongs | int(10) unsigned | YES | | NULL | |
+-------------------+------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
现在,您可以从上面的语法中添加唯一键。我们正在为列MovieId添加唯一密钥。查询如下-
mysql> alter table MovieCollectionDemo add constraint uni_moviecollectio unique(MovieId);
Query OK, 0 rows affected (0.46 sec)
Records: 0 Duplicates: 0 Warnings: 0
让我们查看整个表以及列MovieId,以检查它是否具有唯一键。
mysql> desc MovieCollectionDemo;
以下是输出-
+-------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| MovieId | int(11) | YES | UNI | NULL | |
| MovieDirectorName | varchar(200) | YES | | NULL | |
| NumberOfSongs | int(10) unsigned | YES | | NULL | |
+-------------------+------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
上述输出显示了“UNI”,这意味着字段“MovieId”具有唯一键。
阅读更多:MySQL 教程