[摘要]+----+----------+3 rows in set (0.00 sec)我们可以看到id自动编号,从小到大一次依次编号。唯一约束UNIQUE KEY唯一约束唯一约束保证记录不可重复(唯一性...
+----+----------+3 rows in set (0.00 sec)
我们可以看到id自动编号,从小到大一次依次编号。
唯一约束
UNIQUE KEY
唯一约束
唯一约束保证记录不可重复(唯一性)
唯一约束可以为空值(NULL)
可以有多个唯一约束
mysql> CREATE TABLE table4(
-> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(20) UNIQUE KEY,
-> age TINYINT UNSIGNED
-> );
Query OK, 0 rows affected (0.43 sec)
mysql> INSERT table4(username) VALUE("Li");
Query OK, 1 row affected (0.11 sec)
mysql> INSERT table4(username) VALUE("Li");
ERROR 1062 (23000): Duplicate entry 'Li' for key 'username'
mysql> INSERT table4(username) VALUE("Chen");
Query OK, 1 row affected (0.10 sec)对于username我们设置为唯一约束,所以Li不可被重复创建,改为“Chen”即可。注意这里只是实验,在实际操作中,名字相同还是常有的,应该根据实际情况建立数据表。
默认值DEFAULT
通过 DEFAULT 来设置默认值,如果在插入数据时没给给出相应的值,那么就用默认的,下面的例子就是设置number的默认值为3,在插入数据的时候,因为没有给出number,所以默认为3。
mysql> CREATE TABLE table5(
-> number ENUM("1","2","3") DEFAULT "3",
-> username VARCHAR(20)
-> );
Query OK, 0 rows affected (0.41 sec)
mysql> INSERT table5(username) VALUES("Luo");
Query OK, 1 row affected (0.10 sec)
mysql> INSERT table5(username) VALUES("Fang");
Query OK, 1 row affected (0.15 sec)
mysql> SELECT * FROM table5;
+--------+----------+
关键词:对于MySQL数据表设置的详细说明