唯一约束可以保证记录唯一性 约束字段可以为空值NULL 每个表可以有多个UNIQUE约束 但是每个数据表只能有一个 PRIMARY KEY 约束;
mysql> CREATE TABLE SEVEN(
-> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(20) NOT NULL UNIQUE KEY,
-> age TINYINT UNSIGNED
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW COLUMNS FROM seven;
+----------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+----------------+
| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(20) | NO | UNI | NULL | |
| age | tinyint(3) unsigned | YES | | NULL | |
+----------+----------------------+------+-----+---------+----------------+
3 rows in set (0.03 sec)
mysql> INSERT seven(username,age)VALUES("Tom",21);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT seven(username,age)VALUES("Tom",21);
ERROR 1062 (23000): Duplicate entry 'Tom' for key 'username' 唯一性开始报错;
mysql>