保证记录的唯一性,一个表中可以有多个唯一性约束,空值不受唯一性约束
唯一性约束格式
CREATE TABLE tbl_name(
字段名称 字段类型 UNIQUE KEY
);
mysql> CREATE TABLE IF NOT EXISTS testUNIQUE(
-> id INT AUTO_INCREMENT KEY,
-> username VARCHAR(20) UNIQUE
-> );
-> id INT AUTO_INCREMENT KEY,
-> username VARCHAR(20) UNIQUE
-> );
mysql> INSERT testUNIQUE(username) VALUES('AAA');
mysql> INSERT testUNIQUE(username) VALUES('AAA'); -- 记录重复时,会提示错误
ERROR 1062 (23000): Duplicate entry 'AAA' for key 'username'
mysql> INSERT testUNIQUE(username) VALUES(NULL);
mysql> INSERT testUNIQUE(username) VALUES(NULL); -- 记录重复NULL时,不会提示错误
mysql> INSERT testUNIQUE(username) VALUES('AAA'); -- 记录重复时,会提示错误
ERROR 1062 (23000): Duplicate entry 'AAA' for key 'username'
mysql> INSERT testUNIQUE(username) VALUES(NULL);
mysql> INSERT testUNIQUE(username) VALUES(NULL); -- 记录重复NULL时,不会提示错误
mysql> SELECT * FROM testUNIQUE;
+----+----------+
| id | username |
+----+----------+
| 3 | NULL |
| 4 | NULL |
| 1 | AAA |
+----+----------+
+----+----------+
| id | username |
+----+----------+
| 3 | NULL |
| 4 | NULL |
| 1 | AAA |
+----+----------+